标签:object order es6 array info 区别 对象 数据类型 作用
一. 函数
JavaScript中的函数和python中的函数非常类似,只是在定义方式上有部分区别.
1. 定义函数 ;
函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回.
①. 普通函数 :
function f1 () {
console.log ("hello world");
}
f1(); //调用方法
②. 带参数的函数 :
function f2 (a,b) {
console.log(arguments); //内置arguments对象
console.log(arguments.length);
console.log(a,b);
}
f2(a,b); //调用方法
③. 带返回值的函数 :
function sum(a,b) {
return a+b;
}
sum(a,b); //调用方法
④. 匿名函数 :
var sum = function(a,b) {
return a+b;
}
sum(a,b); //调用方法
⑤. 立即执行的函数 :
( function(a,b) { return a+b } ) (a,b);
※. ES6中允许使用" 箭头 "( => )定义函数 :
var f = v => v;
f : 函数名
v : 函数参数 (箭头左侧) 如果函数有多个参数或者没有参数,此位置要用圆括号代替
v : 函数返回 (箭头右侧)
2. 函数的arguments参数 :
function f2 (a,b) {
console.log(arguments.length);
console.log(a,b);
}
f2(2,3);
输出结果 : 2
2 3
即使函数设置的参数的个数,但是用了内置arguments参数的函数也可以接受任意数量的参数.
3. 函数的全局变量和局部变量 :
①. 全局变量 :
在JavaScript函数的外部声明的变量是全局变量,网页上所有脚本和函数都可以访问它.
②. 局部变量 :
在JavaScript含糊内部声明的变量(使用var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部).只要函数运行完毕,本地的局部变量就会被删除.
③. 变量的生存周期 ;
JavaScript变量的生命周期从他们被声明开始.
局部变量在函数运行完之后被删除.
全局变量会在页面关闭后删除.
④. 变量的作用域 :
函数查找变量会首先在函数内部查找,找不到则到外层查找,逐步找到最外层.
4. 词法分析
JavaScript中在调用函数之前,会有一瞬间的时间去对函数进行词法分析.
函数内部无论是使用参数还是使用局部变量都到AO上找.--*/
词法分析过程 :
当函数调用的前一瞬间,会先形成一个激活对象(Active Object),简称AO.
①. 函数设置形参,添加到AO属性,并且值为undefined,即AO,参数 = undefined
函数运行接收实参,添加到AO属性,将之前的undefined值覆盖
②. 如果在分析参数时AO未添加变量属性,则将变量属性添加到AO且值为undefined,即AO.变量 = undefined
如果在分析参数时AO已经有了变量属性,则变量属性不做修改.
③. 如果函数内声明了和分析变量得出的变量名相同的函数,则将对应的变量替换成函数.如果没有声明函数或者声明的函数和分析变量的变量名不相同,则不做任何操作.
5. 内置对象和方法
JavaScript中的所有事物都是对象 : 字符串, 数字, 数组, 日期, 等等.对象是拥有属性和方法的数据.
类型 | 内置对象 | 介绍 |
数据类型 | Number | 数字对象 |
String | 字符串对象 | |
Boolean | 布尔值对象 | |
组合对象 | Array | 数组对象 |
Math | 数学对象 | |
Date | 日期对象 | |
高级对象 | Object | 自定义对象 |
Error | 错误对象 | |
Function | 函数对象 | |
RegExp | 正则表达式对象 | |
Global | 全局对象 |
标签:object order es6 array info 区别 对象 数据类型 作用
原文地址:https://www.cnblogs.com/dong-/p/9593730.html