js高级-函数变量提升
var a = 10;
function f1(){
console.log(a) //undefined 函数变量提升了 函数执行之前想创建了函数的EC 把函数里面声明的变量初始化undefined a先访问了f1内部的了
var a = 19; 给局部变量赋值
console.log(a) 19
}
f1();
// 面试题
1、
var a = 18;
function d(){
console.log(a) //undefined 内部变量a提升
var a = {age:19}
console.log(a) // {age:19}
}
d();
console.log(a) //18
2、
if(!("a" in window)){ //"a" in window true 因为 var a =9 变量提升了
var a = 1;
}
console.log(a) //undefined
3、
console.log(a) //function a(){}
var a = 20;
console.log(a) //20
function a(){
}
4、
f()
console.log(a) // 报错未定义
console.log(b) //9
console.log(c) //9
function f(){
var a = b = c = 9; a局部变量 bc全局变量 var a= 9,b=9,c=9;定义三个局部变量
console.log(a) //9
console.log(b) //9
console.log(c) //9
}
5、
f()
function f(){
for(var k=0; k<10; k++){
console.log(k) //0-9
}
console.log(k) //10
}
js高级-函数变量提升的更多相关文章
- JS高级_变量提升和函数提升
先执行变量提升,后执行函数提升 function a(){} var a console.log(typeof a)//function
- js 高级函数 之示例
js 高级函数作用域安全构造函数 function Person(name, age) { this.name = name; this.age = age; ...
- js中的变量提升与函数提升
先看看一个简单的代码 var str='Hello World'; alert(str);//弹出 Hello World 再看一段代码: var v='Hello World'; (function ...
- js中的变量提升和函数提升
从上周开始,我所在的学习小组正式开始了angular的学习,angular是全面支持es6的,所以语法上和以前的angular有了很大的不同,比如变量声明时就抛弃了var,而选择了let和const: ...
- JS 会有变量提升和函数提升
JavaScript变量函数声明提升(Hoisting)是在 Javascript 中执行上下文工作方式的一种认识(也可以说是一种预编译),从字面意义上看,"变量提升"意味着变量和 ...
- JS中的 变量提升
首先纠正下,文章标题里的 “变量提升” 名词是随大流叫法,“变量提升” 改为 “标识符提升” 更准确.因为变量一般指使用 var 声明的标识符,JS 里使用 function 声明的标识符也存在提升( ...
- js 作用域,变量提升
先看下面一段代码: 代码执行的结果是: 1st alert : a = 0 2nd alert : a = undefined 5th alert : a = 0 3rd alert : a = 3 ...
- JS 作用域与变量提升---JS 学习笔记(三)
你知道下面的JavaScript代码执行时会输出什么吗? var foo = 1; function bar() { if (!foo) { var foo = 10; } console.log(f ...
- js中的变量提升(hoisting)
来看如下代码: function HelloJS(){ var array = [1,2,3,4,5]; for(var i in array){ } alert(i); } HelloJS(); a ...
随机推荐
- python访问hive
#!/usr/bin/env python # -*- coding: utf-8 -*- # hive util with hive server2 """ @auth ...
- call与apply简单介绍
var pet={ word:'...', speak:function(say){ console.log(say+' '+this.word) } } //pet.speak('speak')// ...
- spring揭密学习笔记(3)-spring ioc容器:Spring的IoC容器之BeanFactory
1. Spring的IoC容器和IoC Service Provider的关系 Spring的IoC容器和IoC Service Provider所提供的服务之间存在一定的交集,二者的关系如图4-1所 ...
- 16.Ubuntu安装mysql及win7安装mysql
Ubuntu: 链接地址:https://www.cnblogs.com/logaa/p/6791819.html win7: 链接地址:https://jingyan.baidu.com/artic ...
- 《算法》第五章部分程序 part 6
▶ 书中第五章部分程序,包括在加上自己补充的代码,非确定性有穷自动机(NFA),grep 命令(利用 NFA 匹配) ● 非确定性有穷自动机(NFA) package package01; impor ...
- zookeeper(3) zookeeper的实践及原理
一.基于java API初探zookeeper的使用 (1)建立连接 public static void main(String[] args) { //NOT_CONNECTED-->CON ...
- django 模板context的理解
context作为view与template之间的桥梁,理解它的工作原理对于djagno的模板工作机制至关重要. class ContextDict(dict):#上下文词典,由词典可以通过conte ...
- nginx 服务器 在 centos7 系统下的两种方式
选用系统 Centos7 < 一 > 使用 yum 安装,该方法比较方便,如果不追求版本推荐使用 01, 添加 nginx 储存库 yum -y install epel-releas ...
- jmap dump文件压缩后失效
最近线上出问题,于是用jmap -dump拿到dump文件,再linux压缩后拿到windows下无效,后来又直接拿了一个没有压缩的竟然可以用...坑啊!~
- UICollectionView setPrefetchingEnabled
UICollectionView 开启是否开启预加载,如果开启,cell在没显示的时候就回去调用cellForIndex…方法,如果没开启,cell只有在显示的时候才会去调用cellForIndex… ...