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);
console.log(num);
let num = 10
let temp = num > 2 && num++
console.log(temp);
console.log(num);
短路运算 || 如果第一个为真,则直接第一个值,如果第一个为假,则继续后面的操作
三元表达式
第一个作用:执行不同的代码 ---- 条件 ? 执行满足条件时的代码 : 执行条件不满足时的代码
? 前面的条件会隐性转换为布尔值 只有true 和 false
例子: 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);
console.log(arr);
最常用的方法,也是最灵活的删除方法
arr.splice(操作的下标,删除的个数)
例如:let arr = [1, 23, 56, 21]
arr.splice(0, 1)
arr.splice(arr.length - 1, 1)
arr.splice(1, 2)
数组元素的修改
为数组的某个位置的元素重新赋值时
1.如果有这个索引,那么就是修改
2.如果有这个索引,那就是添加,同时会影响数组的长度
例如: let arr = [1, 2, 3, 4, 5]
arr[0] = 'abc'
console.log(arr);
console.log(arr[5]);
arr[200] = 'jack'
console.log(arr);
console.log(arr.length);