JS中你容易忽略的一些小细节

115 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第17天,点击查看活动详情

js的number最大值:

js中Number的最大值是:Number.MAX_VALUE,在控制台输入这个就可以看到最大值,如图:

屏幕快照 2022-04-17 下午6.42.31.png

typeof

使用typeof判断数据类型,它返回的是小写的字符串,进行判断时要进行小写转换,例子如下:

typeof undefined //undefined
typeof NULL //undefined
typeof null //object
typeof function(){} //function
typeof class{} //object

parseInt的第二个参数:

使用:parseInt(string, radix);

  • string:必需的,是需要被解析的字符串。
  • radix:可选,表示要解析的数字的基数。该值介于2~36之间,如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。 如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

== 与 === 的区别:

  • ===是完全等同,据类型相同,数值也相同。
  • == 是转化类型后进行比较,然后相等。 示例:
"1" == 1 //true
"1" === 1 //false

数组中空元素、undefined的区别

举例说明: [1,2, , 3][1,2,undefined, 3]

空元素与undefined的差别在于:数组的forEach方法会跳过空元素,但是不会跳过undefined,因此遍历的时候会得到不同的结果。

const声明静态常量:

const声明的静态常量是不可以修改值,修改时会报错,但是如果声明的是一个对象,这个对象里的属性是可以修改的,如图所示:

屏幕快照 2022-04-17 下午6.55.49.png

正则表达式:

如果正则表达式使用了断言匹配就必须要用new RegExp包起来,因为在iphone以及ios中是不兼容的。

箭头函数:

箭头函数只返回一个对象需要用括号包起来,像这样:

x => ({ foo: x })

箭头函数内部的this是词法作用域,是由上下文确定,始终指向外层调用者。实例如下:

var obj = {
    birth: 1990,
    getAge: function () {
        var b = this.birth; // 1990 
        var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象 
        return fn(); //fn等于一个没有参数的箭头函数,this指向调用他的对象 
    }
};
obj.getAge(); // 32