JS基础

作者: 东阳啊 | 来源:发表于2017-12-05 14:09 被阅读0次

    1、javascript有哪几种数据类型
    原始数据类型: Undefined、Null、Boolean、Number、String、Symbol(ES6)
    复杂数据类型: Object(是引用类型的值就是对象,其实是引用类型的一个实例)
    引用类型是一种数据结构

    2、判断数据类型

    typeof 运算符
    undefined - 如果变量是 Undefined 类型的
    boolean - 如果变量是 Boolean 类型的
    number - 如果变量是 Number 类型的
    string - 如果变量是 String 类型的
    Symbol- 如果变量是 Symbol 类型的
    object - 如果变量是一种引用类型或 Null 类型的
    
    Undefined和Null都是只有一个值的数据类型,
    Undefined表示声明变量但是未初始化,值是undefined
    Null的值null表示一个空对象指针,以便将来保持一个对象
    
    使用typeof的 Null类型为什么? 
      这实际上是 JavaScript 最初实现中的一个错误,然后ECMAScript 沿用了。
      现在,null 被认为是对象的占位符,从而解释了这一矛盾。
    

    3、引用类型
    对象是引用类型的一个实例,引用类型是一种数据结构
    Object 对象
    (1)ECMAScript 中的所有对象都由Object 对象继承而来
    (2)Object 对象中的所有属性和方法都会出现在其他对象中

    其他的对象还有:
    Array,Date,RegExp,Function,基本包装类型(Boolean、Number、String)

      基本类型的值不是对象,不应该有方法,但是为了方便操作基本类型的值,后台会完成,下列操作。
       例子:
       var s1 = "some text";
       var s2 =  s1.substring(2);
       
       var s1 = new String("some text"); //创建String类型的一个实例
       var  s2 = s1.substring(2);//在实例上调用🈯️定的方法
       s1 = null;  //销毁这个实例
      基本包装类型是一种特殊的引用类型,它和引用类型最大的区别
      就是生存期不一样。自动创建的基本包装类型的对象,只存在于
       一行代码的执行瞬间,然后被销毁。而用new操作符创建的引用
     类型的实例,在执行流离开当前作用域之前都一直保存在内存中。
    
           
    属性:   
    constructor:创建当前对象的函数(构造函数)
    prototype:(原型)对该对象的对象原型的引用
    方法:
    hasOwnProperty( )
    

    instanceof( )
    是挂载在全局对象上的方法 识别对象的构造函数名字

    Function
    js中函数名可以想象为指针

    没有重载:

    重载,简单说,就是函数或者方法有相同的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。

    js中函数名可以想象为指针,声明了两个同名的函数,后面的会覆盖掉前面的。

    函数的内部属性:

    arguments和this

    arguments
    函数的参数
    arguments.callee属性指回这个函数

    this(函数内部自带的一个变量,用于指向函数执行的环境对象)
    谁调用的指向谁

    闭包:
    闭包就是能够读取其他函数内部变量的函数。
    只有函数内部的子函数才能读取局部变量,因此可以把闭包简单理解成"定义在一个函数内部的函数"。

      function f1(){
        var n=999;
        function f2(){
          alert(n); 
        }
        return f2;
      }
      var result=f1();
      result(); // 999
    
    

    为什么要使用闭包
    用处:设计私有的方法和属性

    闭包的典型框架应该就是jquery了。
    这在做框架的时候体现更明显,有些方法和属性只是运算逻辑过程中的使用的,不想让外部修改这些属性,因此就可以设计一个闭包来只提供方法获取。

    JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里。

    记忆重点:
    拼写:
    typeof  instanceof 
    构造函数名,首字母大写
    

    相关文章

      网友评论

          本文标题:JS基础

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