전단 고전 면접문제-js기초고찰
10081 단어 프런트 엔드
<html>
<head>
<title>hoistingtitle>
head>
<body>
<script type="text/javascript">
function Foo(){
getName = function() {console.log(1);};
return this;
}
Foo.getName = function (){ console.log(2);};
Foo.prototype.getName = function(){console.log(3);};
var getName = function(){console.log(4);};
function getName(){console.log(5);};
Foo.getName();//2
getName();//4
script>
body>
html>
미리 해석된 코드의 순서
<html>
<head>
<title>hoistingtitle>
head>
<body>
<script type="text/javascript">
// , 。
var getName;
function getName(){console.log(5);};
function Foo(){
getName = function() {console.log(1);};
return this;
}
Foo.getName = function (){ console.log(2);};
Foo.prototype.getName = function(){console.log(3);};
getName = function(){console.log(4);};
Foo.getName();
getName();
script>
body>
html>
2. 로컬 도메인
<html>
<head>
<title> title>
head>
<body>
<script type="text/javascript">
function Foo(){
getName = function() {console.log(1);};
return this;
}
Foo.getName = function (){ console.log(2);};
Foo.prototype.getName = function(){console.log(3);};
var getName = function(){console.log(4);};
function getName(){console.log(5);};
// foo(),getName , var, 。
Foo().getName(); //1
// 1,getName() window.getName(),getName this.getName()
getName(); //1
script>
body>
html>
3. 매개 변수 우선 순위
<html>
<head>
<title> title>
head>
<body>
<script type="text/javascript">
function Foo(){
getName = function() {console.log(1);};
return this;
}
Foo.getName = function (){ console.log(2);};
Foo.prototype.getName = function(){console.log(3);};
var getName = function(){console.log(4);};
function getName(){console.log(5);};
// new,foo.getName 2
//new function (){console.log(1);};
new Foo.getName(); //2
//new Foo() , getName 3
new Foo().getName(); //3
//. new new
new new Foo().getName(); //3
script>
body>
html>