您的位置:首页 > Web前端 > JavaScript

JS 知识总结中

2018-03-29 17:57 381 查看
笔记阶段排版乱

js的基本类型有哪些?引用类型有哪些?null和undefined的区别。

数据类型

简单 / 基本类型

Undefined 唯一值

String

Boolean 两个值

Number 整数、浮点数 / NAN / Infinity

Null 唯一值

Symbol ES6

引用类型

Object

是所以对象的基础类型,其他所以类型都从 Object 继承了基本行为

一组数据与功能的集合

javascript中数据类型分为基本类型与引用类型;

基本类型值存储于栈内存中,传递的就是当前值,修改不会影响原有变量的值;

引用类型值其实也存于栈内存中,只是它的值是指向堆内存当中实际值的一个地址;索引引用传递传的值是栈内存当中的引用地址,当改变时,改变了堆内存当中的实际值;

引用类型

引用类型 是一种 数据结构。用于将数据和功能组织在一起。

对象是某个特定引用类型的实例

Object

Array

Date

RegExp

Function

基本包装类型(特殊的引用类型)

每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能调用一些方法来操作这些数据。

Boolean

Number

String

引用类型与基本包装类型的主要区别:

对象的生存期

引用类型的实例在执行流离开当前作用域之前,都一直保存在内存中

自动创建的基本包装类型的实例值存在于一行代码的执行瞬间

null 与 undefined 的区别

NULL 空对象指针 / 空对象的引用

意在保存对象的变量,在真正保存前,最好初始化为 null

typeof null   //object


undefined 未经初始化的变量

alert(null == undefined)  //true


Object是引用类型嘛?引用类型和基本类型有什么区别?哪个是存在堆哪一个是存在栈上面的?

基本类型 与 引用类型的区别

基本类型

基本类型值是简单的数据段

保存在栈内存

从一个变量向另一个变量复制基本类型的值,会创建这个值的一个副本

引用类型

引用类型的值是对象

保存在堆内存

包含引用类型的值的变量实际上包含的是指向该对象的指针

从一个变量向另一个变量复制引用类型的值,会创建这个指针的副本,因此两个变量会指向同一个对象

typeof 操作符

输出 u sb n o fuck

“undefined”

“string”

“boolean”

“number”

“object” //对象 或 null

“function”

“symbol”

instanceof

检测是哪种引用类型的对象

用以检测基本类型的值都返回false,因为其不是对象

variable instanceof constructor

e.g.

console.log(a instanceof Array) true/false

instanceof

instanceof 操作符的内部实现机制和隐式原型、显式原型有直接的关系。instanceof的左值一般是一个对象,右值一般是一个构造函数,用来判断左值是否是右值的实例。它的内部实现原理是这样的: 设 L instanceof R , 通过判断 L. proto . proto ….. === R.prototype,最终返回true or false,也就是沿着L的 proto 一直寻找到原型链末端,直到等于R.prototype为止。知道了这个也就知道为什么以下这些奇怪的表达式为什么会得到相应的值了

Function instanceof Object // true

Object instanceof Function // true

Function instanceof Function //true

Object instanceof Object // true

Number instanceof Number //false

动态类型/松散类型

变量可以用来保存任何类型的数据。

就是说,每个变量仅仅是一个用于保存值的占位符而已。

访问对象属性的方法 高三p85

点表示法

方括号表示法

属性名需要以”字符串“形式放入

优点: 可以通过变量来访问属性

创建对象的多种方式

创建 [b]Object 实例的方式[/b]

new Object()

对象字面量

ES5中的Object.create()

创建对象的多种方式以及优缺点

https://github.com/mqyqingfeng/Blog/issues/15

函数的作用域是什么?

作用域是指程序源代码中定义变量的区域

作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。

JavaScript 采用词法作用域(lexical scoping),也就是静态作用域。

作用域链生成过程

js 的作用域有几种?

JavaScript 中的作用域有

函数作用域

块作用域

ES3中 try/catch 结构中的 catch 分句

ES6 中 let 关键字等

new

根据《JS高级编程》里面的描述,new的时候一共做了四件事,

创建一个新的对象

把this指向该新对象

执行构造函数的代码

返回新对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: