数字类型的用法
1、is.NaN() 相当于window.isNaN用于判断是不是非数字
console.log(window.isNaN(NaN)); //true
console.log(window.isNaN(isNaN)); //true
console.log(window.isNaN("123")); //false
console.log(window.isNaN(123)); //false
console.log(window.isNaN(null)); //false
console.log(window.isNaN(true)); //false
console.log(window.isNaN(undefined)); //true
2、Number.isNaN() 用于判断传入的是否是非数值(先判断是不是数字类型)
console.log(Number.isNaN(NaN)); //true
console.log(Number.isNaN(isNaN)); //false
console.log(Number.isNaN("123")); //false
console.log(Number.isNaN(123)); //false
console.log(Number.isNaN(null)); //false
console.log(Number.isNaN(true)); //false
console.log(Number.isNaN(undefined)); //false
3、Number.isFinite() 解析一个数值判断是否非无穷
console.log(Number.isFinite("1.23")); //false
console.log(Number.isFinite(1.23)); //true
console.log(Number.isFinite(NaN)); //false
console.log(Number.isFinite(Math.PI)); //true
console.log(Number.isFinite(undefined)); //false
console.log(Number.isFinite(null)); //false
4、Number.parseInt() 解析一个数值返回一个整数
console.log(Number.parseInt("1.123")); //1
console.log(Number.parseInt(1.123)); //1
console.log(Number.parseInt(null)); //NaN
console.log(Number.parseInt(undefined)); //NaN
console.log(Number.parseInt(true)); //NaN
5、Number.isInteger() 用来判断是否是整数
console.log(Number.isInteger(NaN)); //false
console.log(Number.isInteger(11.32)); //false
console.log(Number.isInteger(2.00)); //true
console.log(Number.isInteger()); //false
console.log(Number.isInteger(NaN)); //false
console.log(Number.isInteger(NaN)); //false
console.log(Number.isInteger(NaN)); //false
6、Math.trunc() 用于去除一个数的小数部分,返回整数部分,(会发生隐试数据类转化)
console.log(Math.trunc("1.23")); //1
console.log(Math.trunc(1.23)); //1
console.log(Math.trunc(null)); //0
console.log(Math.trunc(true)); //1
console.log(Math.trunc(undefined)); //NaN
7、Math.sign() 用来判断一个数到底是正数、负数还是零
console.log(Math.sign(2)); //
console.log(Math.sign(-2)); //-1
console.log(Math.sign(0)); //0
对象的使用
1.对象中属性名和属性值一样省略属性值
2.在对象中的函数可以省略":function"
3.表达式可以作为对象中的属性
var name = "zs"
var first = "first"
var name = "name"
var obj = {
name,
age:18,
say(){
console.log("说话");
},
[first + name]:"first"
}
console.log(obj); //Object age:18,firstname:"first",name:"name",say:f say()
obj.say() //说话
console.log(obj[first+name]); //first
console.log(obj[name]); //name
对象的方法
1、Object.is() 作用:比较两个值是否严格相等(全等/===)
console.log(Object.is(10,10)); //true
console.log(Object.is(10,"0")); //false
console.log(Object.is(NaN,NaN)); //true
2、Object.assign(目标对象,原始对像) 作用:将源对象的属性赋值到目标对象上
var obj1 ={
a:1
}
var obj2 = {
b:2
}
console.log(Object.assign(obj1,obj2)); //Object a:1 b:2
// 对象深拷贝
var object = Object.assign({},obj)
object.name = "object"
console.log(obj); //{name: 'name', age: 18, firstname: 'first', say: ƒ}
console.log(object); //{name: 'object', age: 18, firstname: 'first', say: ƒ}
3、Object.setPrototypeOf() 作用:获取一个对象的prototype属性
function Person(){}
Person.prototype.name="person"
Person.prototype.age = 28
var p1 = new Person()
console.log(Object.getPrototypeOf(p1)); //{name: 'person', age: 28, constructor: ƒ}
4、Object.setPrototypeOf() 作用:创建实例化对象, 设置一个对象的prototype属性
Object.setPrototypeOf(p1,{
name:"name",
say(){
console.log("huishuohua");
}
})
console.log(Object.getPrototypeOf(p1)); //{name: 'name', say: ƒ}
5、Object.values() 作用:获取对象的属性值,,Object.keys() 作用:获取对象的属性名
console.log(Object.values(obj1)); //[1,2]
console.log(Object.keys(obj1)); //["a","b"]
函数的使用
在函数中,传的参数为false null undefined 0 "" 时走"||"后边
function fn(name) {
var name = name || "zs"
console.log(name);
}
fn() //zs
fn("zs") //zs
fn(false) //zs
fn(true) //true
fn(null) //zs
fn(undefined) //zs
fn(0) //zs
fn("") //zs
function fn2(name) {
var name = name ?? "zs"
console.log(name);
}
fn2() //zs
fn2("zs") //zs
fn2(false) //false
fn2(true) //true
fn2(null) //zs
fn2(undefined) //zs
fn2(0) //0
fn2("") //
function fn3(name = "ww") {
console.log(name);
}
fn3() //ww
rest 参数 意思为“剩下的部分”
function fn4(x, ...rest) {
console.log(...rest); //3,4,5,6
console.log(x); //2
console.log(arguments[1]); //3
}
fn4(2, 3, 4, 5, 6)
扩展运算符 ...
//1.遍历数组
var arr=[1,2,3,4,5]
console.log(...arr); //1 2 3 4 5 6
// 2.当做数组中的元素
var arr2 = [1, ...arr,6]
console.log(arr2); //[1,1,2,3,4,5,6]
// 3.数组的深拷贝(重点)
var arr3= [...arr]
arr3.unshift(0)
console.log(arr3); //[0,1,2,3,4,5]
console.log(arr); //[1,2,3,4,5]
// 4.函数中的参数
function fn7(x,y,z,m){
console.log(x,y,z,m); //1 2 3 4
}
fn7(...arr)
// 5.与结构赋值连用
var [x,y,z,m] = [...arr]
console.log(x,y,z,m); //1 2 3 4
// 6.将伪数组转换成真正的数组
var str = "我们都是好孩子"
console.log([...str]); //['我', '们', '都', '是', '好', '孩', '子']