600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 字面量 对象字面量 函数字面量 函数定义

字面量 对象字面量 函数字面量 函数定义

时间:2020-07-24 12:45:49

相关推荐

字面量 对象字面量 函数字面量 函数定义

#1.字面量(literal)

用于表达一个固定值的表示法,又叫常量。

【JS程序执行到代码中的字面量,会立即知道它是什么类型的数据,值是多少】

#2.对象字面量

语法:

{k1:v1, k2:v2,...kn:vn}

k:属性名

v:属性值(任意类型,如简单类型数据、函数、对象)

【数据与数据之间用逗号分隔,最后一个数据后面不加逗号】

#3.函数字面量

javascript

//创建一个名为 add 的变量,并用来把两个数字相加的函数赋值给它。

var add = function (a,b) {

return a + b;

};

函数字面量包括4个部分:

(1)保留字 function

(2)函数名(可被省略)

(3)包围在圆括号中的一组参数。

(4)包围在花括号中的一组语句。这些语句是函数的主体,它们在函数被调用时执行。

#4.函数的定义

一般有如下三种方式:

(1)函数关键字(function)语句:

function fn(x){ alert(2); }

(2)函数字面量(Function Literals):(或函数表达式)

var fn = function(x){ alert(2); }

【调用函数表达式,方法是给变量名加()执行,不能使用函数名加()执行】

var fn = function add() {alert(2);} //函数表达式fn(); //调用时变量名加()var obj = {fn:function() {alert(2);}} //创建对象字面量,属性值为函数obj.fn(); //调用时对象名打点加属性名和()

(3)Function()构造函数:

var fn= new Function( 'x','alert(x);' )

【匿名函数直接加()调用】

注意用作块级作用域的匿名函数,将函数声明包含在一对圆括号中,而紧随其后的一对圆括号会立即调用这个函数:

(function() {alert(2);})();// 自调用函数

#5.函数字面量和Function()构造函数的区别

(1)虽然函数字面量是一个匿名函数,但语法允许为其指定任意一个函数名,当写递归函数时可以调用它自己,使用Function()构造函数则不行。

var f = function fact(x) {if (x < = 1) return 1;else return x*fact(x-1);};

(2)Function()构造函数允许运行时Javascript代码动态的创建和编译。在这个方式上它类似全局函数eval_r()。

(3)Function()构造函数每次执行时都解析函数主体,并创建一个新的函数对象。所以当在一个循环或者频繁执行的函数中调用Function()构造函数的效率是非常低的。相反,函数字面量却不是每次遇到都重新编译的。

(4)用Function()构造函数创建一个函数时并不遵循典型的作用域,它一直把它当作是顶级函数来执行。

var y = "global";function constructFunction() {var y = "local";return new Function("return y"); // 无法获取局部变量}alert(constructFunction()()); // 输出 "global"

部分内容转自博主 灵熙兔

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。