美文网首页
2020-07-02

2020-07-02

作者: fanison | 来源:发表于2020-07-05 22:36 被阅读0次

    JS数据类型

    • 共8种。 其中7种原始类型:nullundefinedStringNumberBooleanBigIntSymbol
    • 1种复合类型: Object。除了原始类型的剩下全是复合类型,比如原生对象、数组、函数、正则、宿主对象...

    BigInt :可以表示任意大的整数
    // 创建BigInt,只需在整数的末尾追加n即可
    let a = 12333333333n * 3411452222n;
    Symbol:
    let key = Symbol()
    let obj = {}
    obj[key] = 'jirengu'

    变量声明提升、let与var的区别

    var 和 function 的提升,let 和 const不提升;let有块级作用域。
    暂时性死区。创建、初始化、赋值,var是创建后立即初始化未undefined,let是创建后等赋值时初始化。未初始化就使用就会报错。

    console.log(a)     // undefined
    console.log(b)     // 报错 Uncaught ReferenceError: b is not defined
    var a = 1
    let b = 2
    let c = a + b
    

    箭头函数和普通函数区别

    主要是this的差别,箭头函数里面的this是外面的this。

    如果把箭头函数转换为不用箭头函数的形式,如何转换:
    转换案例

     const obj = {
         a: 1,
         fn: () => {
             console.log(this.a)
         }
     }
    //转换成
     var _this = this
     var obj = {
         a: 1,
         fn: function fn() {
             console.log(_this.a)
         }
     }
    

    undefined和null区别

    相同点:都代表“空”、“未定义”。
    不同点:

      1. 类型不同,undefined的类型是undefined, null的类型是对象;
      1. undefined一般代表未初始化,null一般代表一个尚未设置的对象的占位符。
      1. undefined 在有些场景下(函数内)能重新赋值(所有有时候用void 0 表示undefined),null不能

    用正则实现 trim()

    String.prototype.trim = function(){
        return this.replace(/^\s+|\s+$/g, '')
    }
    //或者 
    function trim(string){
        return string.replace(/^\s+|\s+$/g, '')
    }
    

    使用一个正则表达式字面量,其由包含在斜杠之间的模式组成,如下所示:var re = /ab+c/

    ^:匹配字符串的开始
    $:匹配字符串的结束
    \s:匹配任意的空白符

    + :重复一次或更多次
    x|y : 匹配‘x’或者‘y’
    g:全局搜索

    相关文章

      网友评论

          本文标题:2020-07-02

          本文链接:https://www.haomeiwen.com/subject/rtpdqktx.html