一、布尔类型与undefined与null
Undefined与null是不同的,undefined是未定义,可字符串相拼接但不可与数字相加。null为声明的变量存储的值为空,它可以与数字相加与字符串相拼接。
二、检测变量数据类型
用typeof检测。
三、数据类型转换
1.将数字型转换为字符串类型。
常用:数字型+拼接一个' '变为字符串类型,也可以强制类型转换。
2.字符串转换为数字型。(用parseInt和parseFloat)
四、数组
数组创建有两种方式:
arguments是当前函数的一个内置对象,arguments对象中存储了传递的所有实参。所以当不确定有多少个参数传递时候,可以利用arguments来获取。
数组添加和删除元素的方法:
例子:
函数中有两种声明方式
五、预解析
1、 js引擎运行js分为两步:预解析、代码执行
预解析: js引擎会把js里面的所有var(声明变量)还有function(函数)提升到当前作用域的最前面。
代码执行:按照代码书写的顺序从上至下执行。
2、预解析分为 变量预解析(变量提升)和函数预解析(函数提升)
变量提升就是把所有的变量声明提升到当前作用域最前面,但不提升赋值操作。
函数提升就是把所有的函数声明提升到当前作用域最前面,但不调用。
案例:
输出结果:
面试常问题:
相对于以下代码
输出结果:
六、创建对象
JavaScript中创建对象方法有三种。
第一种(创建+调用):利用对象字面量创建对象
第二种:利用等号赋值的方法添加对象的属性和方法,结尾用“;”结尾。即new Object来创建。
第三种:利用构造函数来创建对象。
因为前两种方式只能一次创建一个对象,所以利用构造函数来创建多个对象。顾名思义,构造函数就是利用一个函数来构造对象。看代码也可以发现,hero是一个函数,然后利用hero这个函数new新的对象,也就是利用函数来构造对象。
七、遍历对象
for...in用于对数组或者对象的属性进行循环操作。
八、Dat()
月份和周几都是从零开始的,所以月份要加一,周日是一星期的第一天。因此值得注意的是对于周几的写法。 先写个数组。再根据getDay()获取值正好为下标。
需要注意的是:时分秒可能只有一位,所以为了美观需要当它只有一位的时候对其补零操作。简单的就利用三元运算符即可完成。
九、数组检测
有两种检测方法,一种是instanceof运算符,格式:参数 instanceof Array
一种是Array.isArray(参数)格式,两种方法返回的都是boolean类型。
十、数组转换为字符串以及添加分隔符
转换为字符串就是toString方法,添加分隔符就是利用join方法。
值得注意的是join也可以将数组转换为字符串,代码如下:
而字符串转换为数组方式:split方法
十一、基本包装类型
也就是把简单数据类型包装为复杂数据类型,这样基本数据类型就有了属性和方法
十二、根据位置返回相应的字符
例子
其中第二个是返回ASCII码值,这样可以根据用户的按键来决定作何反应。
十三、字符串操作方法