JS基础

2017-12-05  本文已影响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 
构造函数名,首字母大写
上一篇 下一篇

猜你喜欢

热点阅读