1、浏览器两大引擎:脚本解释引擎&绘图引擎
2、变量:内存中的存储一个数据的存储空间,再起一个名字
3、只有=才是赋值,不是追加,是完全覆盖
4、笔试题:var a,b=2;输出?
——a是undefined,b是2;因为","优先级高于"="
5、数据类型是什么?——数据在内存中的存储格式
6、只有js作者设计了俩“空”,null和undefined,其他开发语言没有;两者几乎没有区别,不过null是object
7、js是弱类型;typescript是强类型;js存在隐式转换和强势转换
8、基本类型的复制,是新开辟一个空间,互不干扰;引用类型的复制,是指针,指向同一个值
9、隐式转换(特殊):当加法碰上字符串,另一个类型即会被转换为字符串,继而进行拼接
10、强制转换
//转为Number:
(1)将纯数字组成的字符串或bool类型转为number
(2)Number的问题:如果是带单位的,例如"10px"就不可以了,"10px"+"10px"就变成字符串拼接了
Number("10px")+Number("10px"),————>NaN(Not a Number)
(3)parseFloat:将字符串转为number类型的浮点数(小数),只要碰到数字和小数点就保留
例如:
parseFloat("10px")+parseFloat("10px")————20
parseFloat("10.5px")+parseFloat("10.5px")————21
但是:
parseInt("10.5px")+parseInt("10.5px")————20
如上:
parseFloat一定比parseInt用得多,因为精确,具体情况具体使用
//转为string:
(1)x.toString()
例如:
true.toString()————"true"
"1".toString()————"1"
但是:
null.toString()————报错
undefined.toString()————报错
(2)String(x)
接上:
String(null)————"null"
String(undefined)————"undefined"
如上:
String()更万能,其实隐式转换的底层就是调用了String()
//转为boolean: