数据类型核心操作步骤和原理
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次,每一次执行相互之间互不干扰(后面会学习两者之间建立的间接关系)
形成的私有作用域把函数体中的私有变量等都包裹起来了(保护起来了),在私有作用域中操作私有变量和外界没关系,外界也无法直接的操作私有变量,我们把函数执行形成的这种保护机制叫做闭包。
* 学习:知其然而知其所以然*
原文地址:https://www.cnblogs.com/CCxi/p/9458880.html
时间: 2024-10-14 10:24:07