第三章、基本概念
-
js是一门区分大小写的语言(php不区分大小写)
-
标识符命名规则
- 以字母/下划线/美元符号$ 开头
- 其他字符可以是字母/下划线/美元符号$/数字
- 不允许使用关键词或保留字
- 推荐使用驼峰命名
-
严格模式可全局 / 可局部使用(“use strict”)
-
typeof的使用
-
返回object的可能---->null/对象
返回function的可能----> 函数 -
对于未声明的变量,只能进行一项操作就是typeof,返回undefined
var a; alert(a); //undefined alert(b); //报错 console.log(typeof a); //undefined console.log(typeof b); //undefined
所以推荐显示初始化变量,这样就可以用typeof判断变量是未声明还是未赋值;
-
-
null表示一个空对象指针
-
undefined派生自null值,因此
null == undefined
-
null和undefined不同的一点:在变量的声明时,没有必要把值设为undefined;但是在对象的声明时,只要确定了这个变量是一个对象后,就应该让他保存null;
-
js中的布尔值都是小写
-
数据类型 true false Number 所有非零值 0和NaN String 所有非空字符串 " " object 任何对象 null undefined 无 undefined -
八进制:0开头 十六进制:0x开头
-
浮点数都不是精确数值,不能用于精确计算
-
number中两类特殊值
- Infinity:超过数值范围
[Number.MIN_VALUE,Number.MAX_VALUE]
时,就会转换为Infinity,而且区分正负;我们可以用isFinite()
这个函数判别 - NaN:当发生错误数学运算时,会返回一个非数值对象NaN;任何设计NaN的操作都会返回NaN;NaN和任何值都不相等,包括他自己;可以用
isNaN()
这个函数判别;这个函数接受一个参数后,会尝试把这个参数转换为数字,如果无法转换则返回true;
(补充一个细节:只有0/0返回NaN,其他数/0返回 )
- Infinity:超过数值范围
-
转换为number的函数有三个:
Number();parseInt();parseFloat();
简单写几个需要注意的区别:
转换成的都是十进制数字
Number()能转换任何数据类型;parseInt();parseFloat();只能转换字符串,前者转整数,后者转浮点数
parseInt()可以传第二个参数,表示第一个参数的进制;parseFloat()没有进制的说明,所以他只能转十进制数字; -
转换为字符串的函数有两种:
toString(); String();
toString()可以转换非null undefined的数据
String()可以转换任何的数据类型 -
toString()和parseInt()都可以传入进制,但他们的区别是:
toString()传入的是输出的进制,只能传入十进制数,先转换为目标进制,在转换为字符串
parseInt()传入的是输入进制,最终都会输出十进制数