10.JS函数

  1. 函数的 5 种声明
  2. 如何调用函数 f.call
  3. this 和 arguments
  4. 什么是 call stack
  5. 作用域
  6. 闭包
  7. call、apply

 

1.函数声明

//关键字
function x(参数1,参数2){
	return 参数1+参数2;
}
//x()对象
//x.call() 执行对象的函数体 真实用法  x.call(undefined,参数1,参数2)

//匿名函数 必须赋给变量
var f = function (参数1,参数2){
	return 参数1+参数2;
}

//外部直接x();报错!!!
//  f.name    结果是 x
var f = function x(参数1,参数2){
	//x();可以。
	return 参数1+参数2;
}


//少用
//  f.name    结果是 anonymous//匿名
var f = new Function('x','y','return x+y'){
	
}

//箭头函数
(x,y)=>{return x+y;}

2.this 和 arguments

//call的第一个参数可以用this得到.
//call的后面参数是arguments.

```

function log(msg) {
        console.log.call(this,msg);
    }
    log('1'); // 1
    log('1','2');// 1

    function log(a) {
        console.log.apply(console, arguments);
    };
    log(1); //1
    log(1, 2); //1 2

```

作用域、闭包

a = 3;//先赋值,当作用域内找不到时,a再声明。
//声明提升。变量提升!!!就近原则。
//闭包:如果一个函数,使用了他范围外的变量,那么(这个函数+这个变量)就叫闭包

var f1 = function f2(){} 
f1.name = 'f2'

var f1 = function f2(){}
console.log(f2);//f2 is not defined(f2 不存在,而且 f2 不是 undefined)

function f(){
    console.log(this)
}
f.call(1) // Number 对象 1

function f(){
    'use strict'
    console.log(this)
}
f.call(1) //1

function f(){
    console.log(this)
}
f.call() //window

function f(){
    'use strict'
    console.log(this)
}
f.call() //undefined

var a = console.log(1) //undefined

function f(){
    return 1
}
a = f //a的值是函数f

function f(){
    return 1
}
var a = f.call() //a的值是1

var a = 1,2; //a的值是报错

var a = (1,2);//a的值是2

var a = (1, console.log(2)) //a 的值是什么undefined

function f(){
    return function f2(){}
}
var a = f.call() //函数 f2

function f(){
    return function f2(){}
}
var a = f.call()
var b = a.call() //a的值undefined

function f1(){
    console.log(this)//obj 对象
    function f2(){

    }
}
var obj = {name: 'obj'}
f1.call( obj )

 

 

 

 

G

M

T

 

 

 检测语言世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语信德语修纳语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语卢森堡语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语吉尔吉斯语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语夏威夷语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语库尔德语弗里西语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语普什图语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语科萨科西嘉语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苏格兰盖尔语苗语英语荷兰语菲律宾语萨摩亚语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿姆哈拉语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语

 

世界语中文简体中文繁体丹麦语乌克兰语乌兹别克语乌尔都语亚美尼亚语伊博语俄语保加利亚语信德语修纳语僧伽罗语克罗地亚语冰岛语加利西亚语加泰罗尼亚语匈牙利语南非祖鲁语卡纳达语卢森堡语印地语印尼巽他语印尼爪哇语印尼语古吉拉特语吉尔吉斯语哈萨克语土耳其语塔吉克语塞尔维亚语塞索托语夏威夷语威尔士语孟加拉语宿务语尼泊尔语巴斯克语布尔语(南非荷兰语)希伯来语希腊语库尔德语弗里西语德语意大利语意第绪语拉丁语拉脱维亚语挪威语捷克语斯洛伐克语斯洛文尼亚语斯瓦希里语旁遮普语日语普什图语格鲁吉亚语毛利语法语波兰语波斯尼亚语波斯语泰卢固语泰米尔语泰语海地克里奥尔语爱尔兰语爱沙尼亚语瑞典语白俄罗斯语科萨科西嘉语立陶宛语索马里语约鲁巴语缅甸语罗马尼亚语老挝语芬兰语苏格兰盖尔语苗语英语荷兰语菲律宾语萨摩亚语葡萄牙语蒙古语西班牙语豪萨语越南语阿塞拜疆语阿姆哈拉语阿尔巴尼亚语阿拉伯语韩语马其顿语马尔加什语马拉地语马拉雅拉姆语马来语马耳他语高棉语齐切瓦语

 

 

 

 

 

 

 

 

 

文本转语音功能仅限200个字符

 

 

 

选项 : 历史 : 反馈 : Donate关闭
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值