Undefined和 Null
一个声明后没有被赋值的变量会有一个默认值undefined ( 如果进行相连或者相加时,注意结果)
var variable;
console.log(variable); // undefined
console.log('你好' + variable); // 你好undefined
console.log(11 + variable); // NaN
console.log(true + variable); // NaN
一个声明变量给 null 值,里面存的值为空(学习对象时,我们继续研究null)
var vari = null;
console.log('你好' + vari); // 你好null
console.log(11 + vari); // 11
console.log(true + vari); // 1
typeof获取变量类型
typeof是一个运算符,有2种使用方式:typeof(表达式)和typeof 变量名,第一种是对表达式做运算,第二种是对变量做运算。
var num=8
console.log(typeof num) //number
console.log(typeof(num)) //number
数据类型转换
转换成字符串
一般使用+号进行隐式转换
转换为数字型(重点)
数组中新增元素
可以通过一下方式向数组末尾添加新的元素
arr[arr.length] = "新数据"
剩余参数和扩展运算符
两者是相反的过程
剩余参数可以将以逗号分隔的参数转换成数组到函数中
function fun(a1, a2, ...a) {
console.log(a);
}
fun(1, 5, 6, 8, 9, 7, 1, 4)
结果:[ 6, 8, 9, 7, 1, 4 ]
扩展运算符可以将数组转换成以逗号分隔的数列
var arr = [1, 5, 6, 8, 9, 7, 1, 4]
console.log(...arr)
结果:1 5 6 8 9 7 1 4
arguments
arguments是一个伪数组,内部储存了所有传递的实参
function fun() {
console.log(arguments)
}
fun(1, 5, 8, 99, 55, 33, 44, 4)
结果:[Arguments] { ‘0’: 1, ‘1’: 5, ‘2’: 8, ‘3’: 99, ‘4’: 55, ‘5’: 33, ‘6’: 44, ‘7’: 4 }
new关键字
- 在构造函数执行之前,创建一个 空的对象
- 修改this的指向 ,将this指向创建出来的空对象
- 执行函数代码
- 在函数完成后返回this–即创建出来的 新对象
math对象
属性、方法名 | 功能 |
---|---|
Math.PI | 圆周率 |
Math.floor() | 向下取整 |
Math.ceil() | 向上取整 |
Math.round() | 四舍五入版 就近取整 注意 -3.5 结果是 -3 |
Math.abs() | 绝对值 |
Math.max()/Math.min() | 求最大和最小值 |
Math.random() | 获取范围在[0,1)内的随机值 |
指定范围内取任意整数
function getRandom(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
日期对象date
实例化
//获取当前时间
var now = new Date();
//传入毫秒数
var time = new Date(1578585600000)
//传入日期
var future = new Date('2019/5/1');
date实例方法
数组对象
数组排序
注意:sort方法需要传入参数来设置升序、降序排序
- 如果传入“function(a,b){ return a-b;}”,则为升序
- 如果传入“function(a,b){ return b-a;}”,则为降序
数组索引方法
数组转化成字符串
字符串对象
字符串的不可变
字符串的值不可改变,看上去可以改变,但是其实是地址值变了,再内存中开辟了一块新的内存空间
根据字符串返回位置
indexof方法的使用类似于数组,可以通过返回值是否为-1来判断是否匹配正则
根据位置返回字符
str[index]方法和数组的操作方式类似
字符串操作方法
substr(start,length)类似于数组的slice()方法,截取字符串的一部分
注意replace()方法不会对原来的字符串进行修改,而是返回一个修改后的新字符串
split()方法按照接受的参数切分字符串,将切分后的字符串放到数组中
var str = "我骄傲,我的名字叫,刘德华"
var ar = str.split(",")
console.log(ar);
结果:[ ‘我骄傲’, ‘我的名字叫’, ‘刘德华’ ]