javascript函数部分知识点

知识点:

  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. 直接调用的作用域总是当前作用域,间接调用的作用域总是全局作用域
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,636评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,890评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,680评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,766评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,665评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,045评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,515评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,182评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,334评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,274评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,319评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,002评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,599评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,675评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,917评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,309评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,885评论 2 341

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,204评论 0 4
  • 继承 一、混入式继承 二、原型继承 利用原型中的成员可以被和其相关的对象共享这一特性,可以实现继承,这种实现继承的...
    magic_pill阅读 1,047评论 0 3
  • 来源:仗剑走天涯! 关于javascript的作用域的一些总结,主要参考以上文章,加上自己的整理的理解。 近日对j...
    Michael_林阅读 914评论 0 1
  • 和所有的傻瓜女孩一样,婉莹也喜欢英俊潇洒,风流倜傥的男孩。在那个做梦的年龄幻想着自己的白马王子怎样浪漫的偶遇,曾经...
    沐源工作室阅读 336评论 1 3
  • 一、【好习惯践行】 青蛙打卡:7天 运 动: 指定阅读:1 周检 视:7次 周会语音分享:0次 周会文字作业:1次...
    慧de岸阅读 85评论 0 0