美文网首页
javascript函数部分知识点

javascript函数部分知识点

作者: edwin_hei | 来源:发表于2016-10-06 11:56 被阅读0次

知识点:

  1. 函数声明的三种方式;
  2. 函数的重复声明;
  3. 函数作为第一等公民;
  4. 函数名的提升
    5.不能在条件语句中声明函数
  5. 函数name+length属性以及toString(0方法
  6. 函数作用域
  7. 函数本身的作用域
  8. 参数的省略
  9. 同名参数
  10. arguments对象
  11. 函数闭包
  12. 立即调用的函数表达式(iife)
  13. eval命令
  14. 间接调用和直接调用

答案:

  1. function命令
function print(s){
  console.log(s);
}

函数表达式

 var print = function(s){
  console.log(s);
};

function构造函数

var add = new Funciton(){
  'x',
  'y',
  'return(x+y)';
}
//你可以传递任意参数给function构造函数,只有最后一个参数
//会被当做函数体,如果只有一个参数,该参数就是函数体.
  1. 后面声明的会覆盖前面声明的.
  2. 函数与其他值地位相同.凡是可以使用值的地方,就能使用函数.可以把函数作为参数传递,作为返回值返回


    输出结果:2
  3. javascript引擎将函数名视为同变量名,所以采用function命令声明函数时,整个函数会像变量声明一样被提升到代码头部.
  4. 在条件语句中声明的函数,可能无效,意思就是相当于声明了这个函数,在任何地方都可以使用


    返回结果:你好啊,我还是可以输出
  5. 函数name属性返回函数的名字,匿名函数返回空字符串,返回的内容是function与括号之间的部分;
    length属性返回的是函数定义时的参数个数;
    toString()方法返回的是函数声明,连同函数的注释部分都会返回
  6. 作用域(scope)指的是变量存在的范围,javascript只有两种作用域;一种是全局作用域,变量在整个程序中一直存在,所有地方都可以读取,另一种是函数作用域,变量只在函数内部存在.
    在函数外部声明的变量就是全局变量(global variable),它可以在函数内部读取
    注意:局部变量只能在函数内部声明,在其他区块中声明,一律都是全局变量.
  7. 函数本身也是一个值,也有自己的作用域,他的作用域与变量一样,就是其声明时所在的作用域,与其运行时所在的作用域无关.


    运行结果在图中第二行
  8. 函数的参数是可以省略的,省略不会报错
  9. 同名参数,取最后一个参数作为传入值
  10. 由于javascript允许函数有不定数目的参数,所以我们需要一种机制,可以在函数体内部读取所有参数,这就是arguments对象的由来
    arguments对象,包括了运行时所有传进来的参数
    arguments与数组很像,但是他是一个对象,不是数组,数组专有方法(slice和forEach等)不能在arguments对象上直接使用.
    arguments对象带有一个callee属性,返回他所对应的原函数.这个属性在严格模式下是禁用的,因此不建议使用


    运行结果在第三行
  11. 闭包(colsure) 子函数读取函数内部的变量,可以简单理解成"定义在一个函数内部的函数",闭包最大的特点就是可以记住"诞生的环境".在本质上,闭包就是将函数内部和函数外部链接起来的一座桥梁.
    闭包最大用处的两个,一个是可以读取函数内部的变量,另一就是让这些变量保存在内存中.
  12. javascript引擎规定,如果function关键字出现在行首,一律解释成语句,如果要函数立即执行,解决方法就是不要让funciton还出现在行首,通过圆括号开头解决,这样引擎就认为后面跟的是一个表达式,而不是函数定义语句,所以就避免了错误,立即调用函数表达式(immediately-invoked function expression),简称IIFE;
  13. eval命令的作用是,将字符串当做语句执行,由于eval没有自己的作用域,都在当前作用域内执行,因此可能会修改当前作用域的变量的值,造成安全问题,使用strict模式的话,eval内部声明的变量,不会影响到外部作用域,但是在此,模式下eval依然可以读写当前作用域的变量
    运行速度较慢.
  14. 直接调用的作用域总是当前作用域,间接调用的作用域总是全局作用域

相关文章

网友评论

      本文标题:javascript函数部分知识点

      本文链接:https://www.haomeiwen.com/subject/moeeyttx.html