数据类型核心操作步骤和原理

数据类型核心操作步骤和原理

JS中的数据类型

  • 基本数据类型(值类型)
    • number
    • string
    • boolean
    • null
    • undefined
  • 引用数据类型
    • 对象
      • {}普通对象
      • []数组
      • /^$/正则
      • Math 对象数据类型的
      • 。。。
    • 函数
      • function 普通函数
      • 。。。
JS代码运行在浏览器中,是因为浏览器给我们提供了一个供js代码执行的环境 -> 全局作用域(window/global)
var a=12;
var b=a;
b=13;
console.log(a);
var o={name:"helloworld"};
var p=o;
p.name='席超';
console.log(o.name);
var m={name:'helloworld'};
var n=m;
n={name:'面向对象编程'};
console.log(m.name);
function fn(){
var ary=array.prototype.slice.call(arguments);
return eval(ary.join('+'));
}
fn();

 

值类型

直接按值操作,例如:var a=12;直接把12这个值赋值给变量a (让a变量和12这个值建立了连接的关系)

对象数据类型

在JS中遇到对象,会严格按照如下的步骤操作:
1、浏览器为其开辟一个新的内存空间,为了方便后期可以找到这个空间,浏览器给空间分配一个16进制的地址
2、按照一定顺序,分别的把对象键值对存储到内存空间中
3、把开辟内存的地址赋值给变量(或者其他的东西),以后变量就可以通过地址找到内存空间,然后进行一些操作

函数的操作

创建函数

1、先开辟一个新的内存空间(为其分配了一个16进制的地址)
2、把函数体中编写的js代码当做字符串存储到空间中(函数只创建不执行没有意义)
3、把分配的地址赋值给声明的函数名(function fn和var fn操作原理其实相同,都是在当前作用域中声明了一个名字,此处两个名字是重复的)
执行函数

目的:执行函数体中 的代码

1、函数执行的时候,浏览器会形成一个新的私有作用域(只能执行函数体中的代码)供函数体重代码执行
2、执行代码之前,先把创建函数存储的那些字符串变为真正的js表达式,按照从上到下的顺序在私有作用域中执行
一个函数可以被执行N次,每一次执行相互之间互不干扰(后面会学习两者之间建立的间接关系)
 
形成的私有作用域把函数体中的私有变量等都包裹起来了(保护起来了),在私有作用域中操作私有变量和外界没关系,外界也无法直接的操作私有变量,我们把函数执行形成的这种保护机制叫做闭包
 
* 学习:知其然而知其所以然*
posted @ 2018-08-11 10:58  席超  阅读(261)  评论(0编辑  收藏  举报