前端面试题总结一(js变量和函数声明提前相关)
2024-09-30 22:40:44
好久没有更新博客了,^_^写写博客吧!下面是我总结的一些面试题,希望对大家有所帮助
(1)题目如下:
alert(a)
var a=1
function a(){
alert(a)
}
好多人肯定会觉得输出的结果是undefined,那你就错了,因为function也要声明提前的所以输出的结果应该是::
ƒ a(){
alert(a)
}
更有意思的来了如果我把上面的题改为如下:
alert(a)
function a(){
alert(a)
}
var a=1
输出的结果应该是::
ƒ a(){
alert(a)
}
注意:***函数提升优先级比变量提升要高,且不会被变量声明覆盖,但是会被变量赋值覆盖***
如果下面
alert(a)
function a(){
alert(a)
}
var a=1
alert(a)
这个的输出结果为::
第一次输出::
ƒ a(){
alert(a)
}
第二次输出::
1
(2)题目如下:
var
foo =
"function"
;
var
foo;
//它只是定义,全不会覆盖变量
alert(foo);
//所以返回 function
(3)题目如下:
var getName = function(){
console.log(2);
}
function getName (){
console.log(1);
}
console.log(2);
}
function getName (){
console.log(1);
}
getName();
输出结果:
2
如果我稍作改动
foo();
var foo;
function foo(){
console.log(1);
}
foo=function(){
console.log(2);
}
其输出的结果::
1
处理过程为:
function foo(){
console.log(1);
}
var foo; //并不执行,重复的声明
foo();
foo=function(){
console.log(2);
}
***函数会首先被提升,然后才是变量***
最新文章
- Maven远程仓库的配置
- IE6 跟随滚动解决方法
- js创建元素
- bigDecimal 使用小结
- SQLite: sqlite_master
- FLAG_ACTIVITY_NEW_TASK和SingleInstance的设计思路(多task的应用)
- IE 弹出提示:由于无法验证发布者,所以Windows 已经阻止此软件
- 【数位DP】 HDU 4722 Good Numbers
- 一段神奇的代码-关于PHP字符变量奇怪现象的解释
- 2017.3.3自测j纠错题.
- 在Ubuntu中设置DNS域名服务器端
- C#标识符与关键字
- Windows下用cmd命令实例讲解yii2.0 的控制台定时任务
- 《DSP using MATLAB》Problem 5.22
- 关于meshgrid和numpy.c_以及numpy.r_
- centos6.5最小化安装之后装图形化界面
- a标签的四个伪类
- nowcoder 203J Graph Coloring I(dfs)
- c++的c风格字符串函数的实现
- 【点分治】【路径小于等于k的条数】【路径恰好等于k是否存在】
热门文章
- linux centos7 安装mysql-5.7.17教程(图解)
- 基于Spark和Tensorflow构建DCN模型进行CTR预测
- SpringBoot中使用spring-data-jpa 数据库操作(上)
- 命令搜索命令(whereis、which)
- foxmail地址簿导入thunderbird的乱码问题 (转载)
- 学习css盒子模型
- F - System Overload(约瑟夫环变形)
- sublime 3 最新注册码
- P1823 音乐会的等待
- django.db.utils.OperationalError: (1050, ";Table '表名' already exists)解决方法