一道关于js声明变量,var和let的面试题
function aa(flag) {
// var test // 变量提升,函数最顶部
if(flag) {
var test = 'hello man'
} else {
//此处访问 test 值为 undefined
console.log(test)
}
//此处访问 test 值为 undefined
}
aa(false);
//结果 undefined test被声明了 但是没有被赋值
总结: 用var声明变量时,变量提升到函数最顶部或全局最顶部。
function aa(flag) {
if(flag) {
let test = 'hello man'
} else {
console.log(test)
}
}
aa(false);
//结果 js运行报错 test is not defined test没有被声明
总结: ES6语法的let声明变量时,只在{} 代码块中被声明,所以在相应代码块之外引用,会运行报错。
一道关于js声明变量,var和let的面试题的更多相关文章
- js声明变量的三种方式
JS 声明变量的三种方式 (1)使用变量步骤:a.声明-->b.赋值-->3.调用 正确用法: <script type="text/javascript"> ...
- JS声明变量的写法
学习JS时候,声明变量是必须的,(虽然在没有声明变量的情况下,对某一变量赋值后, js自动认为已进行声明,但为了严谨,建议还是要进行声明)声明方式有传统的 var a: var b: var c: 也 ...
- js声明变量的三种方式及作用域
js声明变量的三种方式及作用域 CreateTime--2017年9月11日17:19:11 Author:Marydon 一.参考链接 本篇文章的创作灵感来源于博主-奔跑的铃铛关于js中cons ...
- js 声明变量规范和特殊变量情况
声明变量特殊情况 情况 说明 结果 var age ; console.log (name); 只声明 不赋值 undefined console.log(name) 不声明 不赋值 直接使用 ...
- js声明变量作用域会提前
var s = 1; function test() { console.info(s); var s = 2; console.info(s); } test(); >>>unde ...
- ECMAScript1.1 js书写位置 | 声明变量 | 基本数据类型 | 数据类型转换 | 操作符 | 布尔类型的隐式转换
js书写位置 由于在写css样式时使用的时双引号,所以我们在写js代码时建议使用单引号(‘’)! 行内式 <input type="button" value="点 ...
- Js高设笔记 & 声明变量与初始化变量
第三章 数据类型 P25 1, var message; //age变量尚未声明 alert(message); //"undefined" alert(age); ...
- 2、变量var关键字
我们在看js声明变量的时候,经常会发现有的变量前会带var 但又的则没有,那么这究竟有什么区别呢? 如果这种情况发生在函数里的话, 加var定义的变量是局部变量,不加var定义的就成了全局变量. // ...
- 关于JS中变量提升的规则和原理的一点理解(二)
上篇文章中讲到变量提升和函数提升的先后顺序时蒙了,后来去查了一下资料,特别整理一下. 在<你不知道的JavaScript(上卷)>一书的第40页中写到:函数会首先被提升,然后才是变量. 书 ...
随机推荐
- windows 检测进程pid
根据端口查进程: netstat -ano |find " netstat -ano | findstr 2018 a 显示所有连接和侦听的端口n 以数字形式显示地址和端口号o 显示关联的进 ...
- FlexPaper 2.3.6 远程命令执行漏洞 附Exp
影响版本:小于FlexPaper 2.3.6的所有版本 FlexPaper (https://www.flowpaper.com) 是一个开源项目,遵循GPL协议,在互联网上非常流行.它为web客户端 ...
- Centos7下安装小米SQL优化工具SOAR
1 下载源码包 赋予权限 wget https://github.com/XiaoMi/soar/releases/download/0.9.0/soar.linux-amd64 -O soar ch ...
- 电路板上的元件R,T,D,C,U
参考链接: https://zhidao.baidu.com/question/194132005.html
- (7)Java数据结构--集合map,set,list详解
MAP,SET,LIST,等JAVA中集合解析(了解) - clam_clam的专栏 - CSDN博---有颜色, http://blog.csdn.net/clam_clam/article/det ...
- Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052 复现过程
v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...
- UVA315 Network 连通图割点
题目大意:有向图求割点 题目思路: 一个点u为割点时当且仅当满足两个两个条件之一: 1.该点为根节点且至少有两个子节点 2.u不为树根,且满足存在(u,v)为树枝边(或称 父子边,即u为v在搜索树中的 ...
- 解决安装YouCompleteMe与Vim版本不兼容问题
用vim 7.4.4版本装YouCompleMe的时候提示这样的信息: YouCompleteMe unavailable: requires Vim 7.4.1578+.明明版本比它要求的还高,居然 ...
- sqoop导数据
1.添加oracle jdbc驱动 https://blog.csdn.net/eason_oracle/article/details/76836758 2.
- 应急响应-GHO提取注册表快照
前言 备份文件.gho中找到机器的注册表 文件夹位置 在 C:\WINDOWS\SYSTEM32\CONFIG 下就是系统的注册表,一般情况下,这里面会有以下几个文件: default 默认注册表文件 ...