js基础的知识点总结

145 阅读4分钟
js基础的易错点
isNaN 表示检验其参数是否是非数字,如果是数字,返回false;如果是非数字,则返回true
例如:isNaN(parseFloat('45.13abc'))  其结果返回true
js常见类型
typeof 123          number  数字类型
typeof '123'        string  字符串类型
typeod true         boolean 布尔值类型
typeof undefined    undefined   undefined类型
typeof null         object     对象类型
typeof NaN          number     数字类型
typeof function(){}    function     函数类型
Number()
Number在进行类型转换的时候,如果发现有非数值,则返回NaN,只能转换纯数值字符串,+功能类似于Number
例如:Number('123')  结果为123       let s = '123'   则+s结果为123
     Number('123abc')  结果为NaN    let s = '123abc'   则+s结果为NaN
算数运算符执行的优先级
先乘除,然后取余,后加减;优先级相同时以书写从左向右执行
一元运算符
概念:只能出现一个变量   例如:i++   ++i    i--   num+ = 1
一元运算符单独使用时,写在前和后没有区别,结果都一样
​
不单独使用时:
++和--写在后面,在这一次先使用这个变量,使用之后在自增或自减
++和--写在前面,先执行自增或自减,再使用结果
比较运算符
比较运算符的结果是布尔值
​
== 等于      === 全等于         != 不等于        !== 不全等于
==表示只判断值是否相等           === 不仅判断值是否相等,且还要判断类型是否相同
 这些比较运算符 会将两边的数据 转换为数值 再进行比较
 NaN不能做比较,或者说与任何数作比较都是false
 
 当两个字符串做比较时,比会将字符串转换为 Ascall码 进行比较 先比较第一位,如果第一位相等,再比较第二位......
短路运算:赋值的时候才有短路,否则不用考虑短路
在js中转换为布尔值为false的有  0   ''  ""   undefined   NaN   null,其余为true
​
短路运算 && 第一个为真,则继续后面的操作,第一个为假,则直接返回第一个值
经典例子:
 let num = 10                              
 let temp = num > 20 && num++
 console.log(temp);    //结果是false
 console.log(num);     //结果是10
 
 
 let num = 10
 let temp = num > 2 && num++
 console.log(temp);    //结果是10
 console.log(num);     //结果是11
 
 短路运算 || 如果第一个为真,则直接第一个值,如果第一个为假,则继续后面的操作
三元表达式
第一个作用:执行不同的代码  ----  条件 ? 执行满足条件时的代码 : 执行条件不满足时的代码
                              ? 前面的条件会隐性转换为布尔值  只有truefalse
例子:   let age = 20
        age >= 10 ? console.log('满足条件的代码') : console.log('不满足条件的代码');
                              
第二个作用:获取  ----  条件 ? 满足条件时的值 : 条件不满足时的值
例子:  
        let gender = 20
        gender =  gender > 10 ?  '男': '女'
        console.log(gender);
while循环:满足条件,就重复做一个事件
语法:while(循环条件){循环体----循环操作}   注意:循环条件是布尔值
循环三要素
1.变量起始值
2.终止条件(没有终止条件,会造成死循环)
3.变量的变化(用自增或自减)
for循环
语法:for(变量的声明和赋值;循环条件;变量的变化){循环体----循环操作}  
break和continue
break:结束当前循环
continue:结束本次循环,开启下次循环(并没有退出当前循环)
数组
获取数组里的元素:通过索引下标取值,索引下标从0开始,例子:arr[填一个任意整数]
数组的长度=元素的数量
获取数组里的所有元素,我们推荐使用for循环来遍历,因为数组有确定的长度(有确定的循环次数)
数组元素的添加
push():它是将元素添加到数组的末尾,元素可以增加1个或者多个,并返回该数组的新长度
arr.push(元素1,元素2...,元素n)
​
unshift():它是将元素插入到数组的开头,元素可以增加1个或者多个,并返回该数组的新长度
arr.unshift(元素1,元素2...,元素n)
数组元素的删除
pop():删除数组的最后一个元素,并且返回当前删除的数据
shift():删除数组的第一个元素,并且返回当前删除的数据
例如:let arr = [1, 2, 3, 4, 5]
        let v = arr.pop()
        console.log(v);     // v 的值 = 5,而5就是我们删除最后的那个元素
        console.log(arr);   //[1, 2, 3, 4]
        
最常用的方法,也是最灵活的删除方法
arr.splice(操作的下标,删除的个数)
例如:let arr = [1, 23, 56, 21]
        arr.splice(0, 1)   //删除第一个
        arr.splice(arr.length - 1, 1)   //删除最后一个
        arr.splice(1, 2)    //删除第2~3个
        
数组元素的修改
为数组的某个位置的元素重新赋值时
1.如果有这个索引,那么就是修改
2.如果有这个索引,那就是添加,同时会影响数组的长度
例如: let arr = [1, 2, 3, 4, 5]
        arr[0] = 'abc'
        console.log(arr);    //['abc', 2, 3, 4, 5]
        console.log(arr[5]);    //undefined
        arr[200] = 'jack'
        console.log(arr);    //['abc', 2, 3, 4, 5, 空属性 × 195, 'jack']
        console.log(arr.length);    //201