JavaScript高级程序设计 阅读笔记

  1. 在ES6中const, var, let实现了块级作用域中局部变量,在ES6之前,如何解决局部变量。

    • 像C语言一样,在函数内部声明的变量就属于局部变量;
      数据类型的判定

    • typeof :判断基本的数据类型,不能区分object,null,array,regexp;

    • instanceof :判断引用类型的原型,可用于自定义对象类型;

    • Object.prototype.String.call() :判断所有类型除了自定义对象类型;

    • constructor :得到当前对象创建原型,不能判断undefined和null;
      基本数据类型:Number,String,Boolean,Undefined,Null
      复杂数据类型:Object
      引用类型:Object,Array,Function
      其中引用类型属于对象(复杂数据类型)

    • Array instanceof Object; //true
      深度思考

    • 为什么null的类型typeof(null)=object
      因为null的实际意义是空对象指针,在最佳实践中表示空对象,如果声明了一个空对象 var a={};那么anull,返回true;==

    -什么情况下出现undefined?
    undefined表示未声明/未赋值的变量;根据最佳实践,需要用到的变量一定要先声明,这样,如果出现undefined一定是声明但未赋值的的变量;

    • 转型函数
      类似Number(),Boolean(),String();

    -NaN为什么是Number类型
    表示Not a Number;

发布了93 篇原创文章 · 获赞 3 · 访问量 2460

猜你喜欢

转载自blog.csdn.net/Damp_XUN/article/details/103186067