最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 争做一名【合格】的小前端!

    正文概述 掘金(柠檬有点萌)   2020-11-29   605

    一、Javascript基础

    1.变量和类型

    1.JavaScript规定了几种语言类型?

    1.Undefined:未定义; 2.Null:未定义; 3.Boolean:true & false; 4.String:字符串; 5.Number:数字; 6.Symbol:独一无二的值; 7.Object:对象; 8.BigInt:比Number数据类型更大的整数值;

    注:使用BigInt只需在数据末尾加n即可,或者调用BigInt()函数;不能使用严格相等运算符将BigInt与常规数字进行比较,因为它们的类型不同;

    2.JavaScript对象的底层数据结构是什么?

    参考链接1 参考链接2

    3.Symbol类型在实际开发中的应用、可手动实现一个简单的Symbol?

    阮一峰ES6

    4.JavaScript中的变量在内存中的具体存储形式?

    5.基本类型对应的内置对象,以及他们之间的装箱拆箱操作?

    6.理解值类型和引用类型?

    答:先码上

    7.null和undefined的区别?

    答:a.null表示"没有对象",即该处不应该有值。 b.undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。 另外:两者的类型不同:null表示一个对象,undefined表示一个未定义的值

    typeof(null)
    // "object"
    typeof(undefined)
    // "undefined"
    

    8.至少可以说出三种JavaScript数据类型的方式,以及他们的优缺点,如何准确的判断数组类型? 答:a.判断数据类型的方式:(1) typeof; (2) instanceof; (3) constructor;(4)toString / Object.prototype.toString;

    (2)instanceof 是用来判断 A 是否为 B 的实例, 表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。 注意:instanceof()检测的是原型

    [] instanceof Array; //true
    {} instanceof Object;//true
    new Date() instanceof Date;//true
    

    (3)当一个函数F被定义时,JS引擎会为F添加prototype 原型,然后再在prototype上添加一个 constructor 属性,并让其指向 F 的引用。 当执行var f = new F()时,F被当成了构造函数,f是F的实例对象,此时F原型上的 constructor 传递到了f上,因此f.constructor == F.

    当执行 var f = new F() 时,F 被当成了构造函数,f 是F的实例对象,此时 F 原型上的 constructor 传递到了 f 上,因此 f.constructor == F

    争做一名【合格】的小前端!

    (4)toString()是 Object 的原型方法,调用该方法,默认返回当前对象的[[class]]。这是一个内部属性,其格式为[object Xxx],其中 Xxx 就是对象的类型。

    对于 Object 对象,直接调用toString()就能返回[object Object]。而对于其他对象,则需要通过call / apply来调用才能返回正确的类型信息。

    Object.prototype.toString.call('') ;   // [object String]
    Object.prototype.toString.call(1) ;    // [object Number]
    Object.prototype.toString.call(true) ; // [object Boolean]
    Object.prototype.toString.call(Symbol()); //[object Symbol]
    Object.prototype.toString.call(undefined) ; // [object Undefined]
    Object.prototype.toString.call(null) ; // [object Null]
    Object.prototype.toString.call(newFunction()) ; // [object Function]
    Object.prototype.toString.call(newDate()) ; // [object Date]
    Object.prototype.toString.call([]) ; // [object Array]
    Object.prototype.toString.call(newRegExp()) ; // [object RegExp]
    Object.prototype.toString.call(newError()) ; // [object Error]
    Object.prototype.toString.call(document) ; // [object HTMLDocument]
    Object.prototype.toString.call(window) ; //[object global] window 是全局对象 global 的引用
    

    b.优缺点:

    c.判断数组类型:Array.isArray()

    9.可能发生隐式类型转换的场景以及转换原则,应如何避免或巧妙应用

    10.出现效数精度丢失的原因,JavaScript可以存储的最大数字、最大安全数字,JavaScript处理大数字的方法、避免精度丢失的方法

    2.原型和原型链

    搬运自大神清单,准备把清单内容补充完,目前正不断更新中...


    起源地下载网 » 争做一名【合格】的小前端!

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元