-
Notifications
You must be signed in to change notification settings - Fork 0
/
js-base3.html
26 lines (25 loc) · 1.98 KB
/
js-base3.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
<head>
<title>高级程序设计</title>
</head>
<body>
1.js的变量分为基本类型和引用类型.
2.基本类型有:Number,String,Boolean,Undefined,Null.按值访问,可以直接操作保存在变量中的实际的值.
3.引用类型是保存在内存中的对象,js不能直接操作内存中的对象,因此是操作的实际是对象在内存中的引用.
4.只能给引用类型的变量添加属性,给基本类型的变量添加属性不会生效.
5.将一个基本类型的变量赋值给一个变量,两个变量互相独立.但是将一个引用类型的变量赋值给一个变量,两个变量会同时指向一个对象,当对任何变量进行修改时,都会通过这个引用找到内存的对象,因此会互相影响.
6.作为函数的入参:var a = 1; var a ={};
s(a)=>{a = 1} s(a)=>{ a.name = 1;}
s(a); s(a);
a;//1 a;//{name:1}
7.检测类型:要检测一个变量是不是基本数据类型,除了typeof操作符,还可以使用 instanceof,
语法:result = variable instanceof constructor
8.执行环境及作用域:执行环境决定了变量和函数有权访问的其他的数据,决定他各自的行为.每个执行环境都有一个与之相关联的变量对象,环境中的变量和函数都保存在这个对象之中.
9.局部执行环境会在代码执行完毕之后销毁,全局执行环境知道应用程序退出(如关闭浏览器)才会被销毁.
10.每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入到执行栈中.函数执行完毕,将函数的执行环境推出.
11.执行环境的变量对象都会有一个作用域链,这个作用域链就是对执行环境中的函数和变量进行有序的访问.
12.每个执行环境都可以向上搜索作用域链.任何执行环境都不能通过向下搜索作用域链.
13.JavaScript没有块级作用域.使用var声明局部变量时,会自动添加到最近的执行环境中.
</body>
</html>