js基础总结

1.web标准
结构(HTML),表现(css),行为(js)

2.css优先级
!important > 行间 > ID > class > 通配符

3.页面文档解析的先后顺序
结构(HTML)—— 表现(css) —— 行为(js)

4.js中全局变量属于window,怎样解决他不属于window?
①箭头函数
②更改指向

5.分号什么时候加?
①等号右边加分号
②事件函数,所有的大括号后加分号

6.return的一些特性
①函数里没有返回值会返回undefined
②阻断后面代码的执行
作用:
①阻断后面代码的执行
②封装函数

7.面向对象的三大特征
继承、封装、多态

8.定时器
setTimeout clearTiomeout 可以模拟循环
setInterval clearInterval

9.js中批量修改样式
①改类名
cssText
③for循环
④使用json setStyle
⑤with

        with(obj.style){
            width:"200px"
            ...
        }

注:cssText会清除之前元素含有的样式,所以得用:
obj.cssText += 'width:200px;height:100px;'
但在IE中最后一个分号会被删除,解决办法:
obj.cssText += ';width:200px;height:100px;'

10.获取非行间样式的方法
①IE:currentStyle
②其他:getComputedStyle
eg:

function getStyle(obj, attr){
            if(obj.currentStyle){
                return obj.currentStyle[attr];
            }else{
                return window.getComputedStyle(obj,false)[attr];
            }
        }
        alert(getStyle(Div,"background"));

11.break是结束整个循环体,continue是结束单次使用
break也可以在while中使用

12.循环语句
for
for in
while
forEach
map

13.判断语句
if(适用于一个区间内判断)
switch(适用于一个离散值判断)

14.三目
变量 = 条件?语句:语句

15.if中只有一个语句可以不写大括号
if()
语句

**16.什么是真,什么是假
真:true,非空字符串,非0数字,非空对象
假:false,0,空字符串,空对象,null,undefined,NaN

17.基本数据类型
String Number Undefined Null Boolean Object Symbol
检测数据类型:typeOf() instanceOf()

18.几种出现undefined的情况
①未声明的变量
②已声明未定义的变量
③传参没有值
④访问不存在的属性

undefined与not defined的区别###

undefined:未经任何操作或者某对象的一个未定义的属性
not defined:完全没定义
*null是空指针

19.隐式转换

  1. " +” 运算符
   var a = 11, b = '22';
   var c = a + b;
   console.log(c) //1122

当运算符“ +” 两边一个是数字类型, 一个是字符串类型时, js引擎规定进行字符串连接运算而非算术加运算。

20.“ -” 运算符

var a = 11, b = '5';
var c = a - b;
alert(typeof c); //--> number

“”-”运算符会把字符串b隐式的转换成数字5再进行算术减法运算。

20.显示转换
1.转换为数值类型:
Number(mix)
parseInt(string,radix)(转成整数)
parseFloat(string)(转成浮点数)
2.转换为字符串类型:
toString(radix)
String(mix)
3.转换为布尔类型:
Boolean(mix)

21.字符串
harAt()方法可返回指定位置的字符

replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

substring()方法用于提取字符串中介于两个指定下标之间的字符。

substr()方法可在字符串中抽取从 start 下标开始的指定数目的字符。

plit()方法用于把一个字符串分割成字符串数组。

`concat() 方法用于连接两个或多个字符串。

slice()方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。

indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个
字符串中的指定位置从后向前搜索。
toLowerCase() 方法用于把字符串转换为小写。
toUpperCase()方法用于把字符串转换为大写。

22.数组
push() 在数组末尾增加一个或多个元素

pop() 用于删除并返回数组的最后一个元素

join() 将数组中所有元素都转化为字符串并且连接在一起,返回最后生成的字符串

reverse()将数组中元素的顺序颠倒,返回逆序的数组。

sort()将数组中的元素进行排序,并且返回排序后的数组。

concat()合并两个数组,并返回合并后的新数组。

slice()返回指定数组的一个片段或子数组,它的两个参数分别指定片段的开始和结束的位置(不包含该元素)。

splice()用于插入、删除或替换数组的元素。并返回删除的部分数组。

unshift()在数组的头部添加一个或多个元素,最后返回数组新的长度。

shift()删除数组的第一个元素并将其返回。

23.严格模式
user strict
为什么用严格模式:

  • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

  • 消除代码运行的一些不安全之处,保证代码运行的安全;

  • 提高编译器效率,增加运行速度;

  • 为未来新版本的Javascript做好铺垫。

"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。

另一方面,同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。

语法与行为改变:

  1. 禁止this关键字指向全局对象

2.全局变量显式声明

3.禁止删除变量

4.对象不能有重名的属性

5.函数不能有重名的参数

你可能感兴趣的:(js基础总结)