2-3.함수와 작용역
1. 함수 성명과 함수 표현식은 어떤 차이가 있습니까?
// , ,
function a(){}
// , ,
var a = function(){};
2. 변수의 성명 전치는 무엇입니까?무엇이 함수의 성명 전치입니까?
바로.변수 및
var
함수의 성명은 작용역 머리까지 증가합니다console.log(a) //undefined, var a ,
var a = 1
console.log(a) //1
fn() //haha function fn(){……} ,
function fn(){
console.log('haha')
}
3.arguments는 무엇입니까?
함수 내부의 클래스 그룹 대상에 사용되며,arguments 대상을 통해 이 함수의 모든 전송 매개 변수를 얻을 수 있습니다.수조처럼 아래 표를 통해 대응하는 값을 얻을 수 있고length 속성도 있지만 수조의 일부 방법 속성을 사용할 수 없습니다
function printPersonInfo(name, age, sex){
console.log(name); //xiaoming
console.log(age); //10
console.log(sex); //male
console.log(arguments); //["xiaoming",10,"male"]
console.log(arguments[0]); //xiaoming
console.log(arguments.length); //3,length
}
printPersonInfo('xiaoming',10,'male')
4. 함수의'재부팅'은 어떻게 실현됩니까?
함수내if판단을 통해 서로 다른 입력은 서로 다른 실행 내용에 대응한다.
//1
function printPeopleInfo(name,age,sex){
i = arguments.length
if(i === 1){
console.log(name);
} else if (i === 2){
console.log(name)
console.log(age)
} else if(i === 3){
console.log(name)
console.log(age)
console.log(sex)
}
}
printPeopleInfo('Byron', 26);
printPeopleInfo('Byron', 26, 'male');
//2
function printPeopleInfo(name, age, sex){
if(name){
console.log(name);
}
if(age){
console.log(age);
}
if(sex){
console.log(sex);
}
}
printPeopleInfo('Byron', 26);
printPeopleInfo('Byron', 26, 'male');
5. 함수 표현식을 즉시 실행하는 것은 무엇입니까?무슨 작용이 있느냐
함수 성명 후 즉시 실행되며, 이때 괄호 등을 통해 해석기가 표현식으로 함수를 처리해야 한다.역할: 역할 영역 격리
(function(){
var a = 1;
})();
console.log(a); //undefined
6. 제발 n!,귀속으로 실현하다
function fn(n){
if (parseInt (n,10) === n){
if (n === 0){
return 1
} else if (n < 0){
console.log(' ')
return
} else if(n === 1){
return 1;
} else {
return (n * fn (n-1));
}
} else {
console.log(' ')
}
}
7. 코드 출력
function getInfo(name, age, sex){
console.log('name:',name);
console.log('age:', age);
console.log('sex:', sex);
console.log(arguments);
arguments[0] = 'valley';
console.log('name', name);
}
getInfo(' ', 2, ' ');
/*
name:
age:2
sex:
[" ", 2, " "]
name valley
*/
getInfo(' ', 3);
/*
name:
age:3
sex:undefined
[" ",3]
name valley
*/
getInfo(' ');
/*
name:
age:undefined
sex:undefined
[' ']
name valley
*/
8. 함수를 써서 매개 변수의 제곱과
function sumOfSquares(){
var sum = 0
for (var i = 0; i < arguments.length; i++) {
var a = arguments[i]
sum += a*a
}
return sum
}
var result = sumOfSquares(2,3,4)
var result2 = sumOfSquares(1,3)
console.log(result) //29
console.log(result2) //10
구.
console.log(a); //undefined
var a = 1;
console.log(b); //Uncaught ReferenceError: b is not defined
/*
var a
console.log(a) //a , , undefined
a = 1
console.log(b) //b ,
*/
십.
sayName('world'); //hello world
sayAge(10); //Uncaught TypeError: sayAge is not a function
//sayAge , var sayAge ,
function sayName(name){ // function ,
console.log('hello ', name);
}
var sayAge = function(age){
console.log(age);
};
십일.
var x = 10
bar() //10
function foo() {
console.log(x)
}
function bar(){
var x = 30
foo()
}
/*
1.
globalContext = {
AO:{
x:10
foo:function
bar:function
}
}
foo.[[scope]] = globalContext
bar.[[scope]] = globalContext
2.
barContext = {
AO:{
x:30
},Scope:globalContext
}
3.
fooContext = {
AO:{},
Scope:globalContext
}
*/
십이.
var x = 10;
bar()
function bar(){
var x = 30;
function foo(){
console.log(x) //30
}
foo();
}
/*
1.
globalContext = {
AO:{
x:10
bar:function
}
}
bar.[[scope]] = globalContext
2.
barContext = {
AO:{
x:30
foo:function
},
Scope:globalContext
}
foo.[[scope]] = barContext
3.
fooContext = {
AO:{},
Scope:barContext
}
*/
십삼.
var x = 10;
bar()
function bar(){
var x = 30;
(function (){
console.log(x) //30
})()
}
/*
1.
globalContex = {
AO:{
x:10
bar:function
}
}
bar.[[scope]] = globalContext
2.
barContext = {
AO:{
x:30
},
Scope:globalContext
}
*/
십사.
var a = 1;
function fn(){
console.log(a) //
var a = 5
console.log(a) //
a++
var a
fn3()
fn2()
console.log(a) //
function fn2(){
console.log(a) //
a = 20
}
}
function fn3(){
console.log(a) //
a = 200
}
fn()
console.log(a) //
//undefined 5 1 6 20 200
/*
1.
globalContext = {
AO:{
a:1 | a:200 // :200
fn:function
fn3:funciton
}
}
fn.[[scope]] = globalContext
fn3.[[scope]] = globalContext
2.
fnContext = {
AO:{
a | a:5 | a:6 | a:20 // :undefined, :5
// :20
fn2:funciton
},
scope:globalContext
}
fn2.[[scope]] = fnContext
3.
fn3Context = {
AO:{
// :1
},
Scope:globalContext
}
4.
fn2Context = {
AO:{
// :6
},scope:fnContext
}
*/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.