함수와 작용역 3
함수 성명 function 키워드를 사용하면 함수 성명이 호출된 앞에 놓을 필요가 없음을 설명할 수 있습니다. 함수 성명은 함수 이름이 있어야 합니다.
//
function sayHello(){
console.log('hello')
}
//
sayHello()
함수 표현식 성명은 호출된 앞뒤 두 함수의 이름이 같을 수도 있고 같지 않을 수도 있습니다. function 뒤에 있는 이 이름(sayHello)은 생략할 수 있습니다.
var sayHello = function sayHello(){
console.log('hello');
}
sayHello()
세 번째 성명 함수 방식은 구축 함수 var sayHello=new Function("console.log("hello world");")을 사용합니다.
2. 변수의 성명 전치는 무엇입니까?함수의 성명 전치가 무엇입니까
변수의 성명 전치: 같은 작용역 아래에서 모든 변수를 시작 성명 함수의 성명 전치에 놓는다. 변수 성명 전치와 같은 의미는 함수 작용역 아래에 있을 뿐, 시작 전에 변수를 성명한다.
3.arguments가 뭐예요?
함수 내부에서arguments 대상을 사용하여 이 함수의 모든 전송 매개 변수를 얻을 수 있습니다. 함수 매개 변수를 정의했지만 상응하는 매개 변수 값이 없으면 전달된 함수 매개 변수는 자동으로 undefined 값을 부여합니다. 예를 들어 functionprintPersonInfo(name,age,sex) {console.log(name);console.log(age);console.log(sex);console.log(console.log(arguments);}
4. 함수의'재부팅'은 어떻게 실현되는가
JavaScript는 강형 언어처럼 함수 재부팅을 할 수 없습니다. 같은 함수 이름의 두 함수를 정의한 다음 함수는 이전 함수를 덮어씁니다. 즉, 같은 함수는 덮어쓰지만, 함수 바늘에서 서로 다른 매개 변수를 호출하여 해당하는 논리 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 fn1 () {}) ().
6. 제발 n!,귀속으로 실현하다
function f(n){
if(n>1){
return n*f(n-1);}
else if(n==1){
return 1;}
else{
return 0;}
}
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, ' ');
getInfo(' ', 3);
getInfo(' ');
/*
name:
age:2
sex:
[" ", 2, " "]
name valley */
/*name:
age:3
sex:undefined
[" ", 3 ]
name valley */
/*name:
age:undefined
sex:undefined
[" "]
name valley */
function sumOfSquares(){
var sum=0;
for(i=0;i
console.log(a);
var a = 1;
console.log(b);
/*
:
undefined
Uncaught ReferenceError: b is not defined
var a;
console.log(a);
a = 1;
console.log(b);//b ,
*/
sayName('world');
sayAge(10);
function sayName(name){
console.log('hello ', name);
}
var sayAge = function(age){
console.log(age);
};
/*
hello world
Uncaught TypeError: sayAge is not a function*/
function , , ,
var sayAge = function(age) , , */
var x = 10
bar()
function foo() {
console.log(x)
}
function bar(){
var x = 30
foo()
}
/*globalContext = {
AO: {
x: 10
foo: function
bar: function
},
Scope: null
}
foo
foo.[[scope]] = globalContext.AO
bar
bar.[[scope]] = globalContext.AO
:10 */
var x = 10;
bar()
function bar(){
var x = 30;
function foo(){
console.log(x)
}
foo();
}
/*globalContext = {
AO: {
x: 10
bar: function
},
Scope: null
}
bar
bar.[[scope]] = globalContext.AO
barContext = {
AO: {
x: 30,
foo: function
},
Scope: bar.[[scope]] //globalContext.AO
}
bar foo
foo.[[scope]] = barContext.AO
:30*/
var x = 10;
bar()
function bar(){
var x = 30;
(function (){
console.log(x)
})()
}
/*globalContext = {
AO: {
x: 10
bar: function
},
Scope: null
}
bar
bar.[[scope]] = globalContext.AO
barContext = {
AO: {
x: 30,
(function (){console.log(x)}): function
},
Scope: bar.[[scope]] //globalContext.AO
}
bar foo
(function (){console.log(x)}).[[scope]] = barContext.AO
:30*/
var a = 1;
function fn(){
console.log(a) //undefiend
var a = 5
console.log(a) //5
a++
var a
fn3() //1
fn2() //6
console.log(a) //20
function fn2(){
console.log(a)
a = 20
}
}
function fn3(){
console.log(a)
a = 200
}
fn()
console.log(a) //200
/*globalContext = {
AO: {
a: 1
fn: function
fn3: function
},
Scope: null
}
fn
fn.[[scope]] = globalContext.AO
fn3
fn3.[[scope]] = globalContext.AO
fn.Context = {
AO: {
a: undefiend
fn2: function
},
Scope: fn.[[scope]] //globalContext.AO
}
fn fn2
fn2.[[scope]] = fnContext.AO*/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.