JS零碎知识点总结
最近在系统的学js,特意用博客来记录一些容易被忽略的知识点,也算给自己一个督促
数据类型篇
- 简单:Number,String,Boolean,Undefined,Null
- 复杂:Object
简单数据类型 begin
1.Number:
- 浮点数千万不要判断相等,由于计算机是用二进制表示数组,对于浮点数会有一定的误差
- 无穷大:Infinity;无穷小:-Infinity
- 数值判断:NaN:not a number 与其本身都不相等
isNaN(num):判断num是否为数字,如果不是数字则返回true
2.String:注意转义符用法(想输出引号则加入\)\n表示换行,\t表示tab空格相当于制表符
3.Undefined:声明变量但并未赋值的,该数据类型仅有一个值,即undefined
4.Null:有值只不过是空,如果想让变量为空必须手动赋值
数据类型转换
5.转换为字符串:
- 变量调用自己的toString方法,如num.toString();但null和undefined无该方法
- 因此null和undefined可以用String(null)来转化null;
- 字符串拼接 num+’’ :其他类型+空字符串
6.转换为数值类型:
- Number(“abc”);->NaN;Number(true);->1。如果str中有一个非数字则变成NaN
- parseInt(“abc123”);->NaN。解析成整型,但无法把bool类型转换为数字,若字符串以数字开头则会转换成数,直到遇到字母,但若以字母开头,直接NaN;
- parseFloat();可以解析第一个小数点,其他同上
- 加正负号,如:var s=“123”; console.log(-s);->-123。但如果包含非数字,则输出NaN,可以转换bool类型
- 和0相减:console.log(s-0);
7.转换为bool类型:Boolean(num);->true 。转换结果为false情况:undefined,null,‘’空字符串,0,NaN
8.表达式:由操作符和操作数组成,并且有一个返回值,如表达式(++num):先上num自身+1,然后再返回表达式结果;
num++:先返回表达式结果num,然后再对num自身+1
var num=7;
console.log(num++);//输出7
console.log(num);//输出8
9.运算符优先级:括号>一元运算符(++,–,!只有一个操作数的)>算数运算符>关系运算符(>,>=,<,<=)>相等运算符(==,!=, === )>逻辑运算符(先&&后||)>赋值运算符
10.隐式类型转换
var num=123;
1)if (num){}
var num='123';
2)isOk=!!str;//发生隐式转变