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高级-函数变量提升的更多相关文章

  1. JS高级_变量提升和函数提升

    先执行变量提升,后执行函数提升 function a(){} var a console.log(typeof a)//function

  2. js 高级函数 之示例

    js 高级函数作用域安全构造函数 function Person(name, age)    {        this.name = name;        this.age = age;     ...

  3. js中的变量提升与函数提升

    先看看一个简单的代码 var str='Hello World'; alert(str);//弹出 Hello World 再看一段代码: var v='Hello World'; (function ...

  4. js中的变量提升和函数提升

    从上周开始,我所在的学习小组正式开始了angular的学习,angular是全面支持es6的,所以语法上和以前的angular有了很大的不同,比如变量声明时就抛弃了var,而选择了let和const: ...

  5. JS 会有变量提升和函数提升

    JavaScript变量函数声明提升(Hoisting)是在 Javascript 中执行上下文工作方式的一种认识(也可以说是一种预编译),从字面意义上看,"变量提升"意味着变量和 ...

  6. JS中的 变量提升

    首先纠正下,文章标题里的 “变量提升” 名词是随大流叫法,“变量提升” 改为 “标识符提升” 更准确.因为变量一般指使用 var 声明的标识符,JS 里使用 function 声明的标识符也存在提升( ...

  7. js 作用域,变量提升

    先看下面一段代码: 代码执行的结果是: 1st alert : a = 0 2nd alert : a = undefined 5th alert : a = 0 3rd alert : a = 3 ...

  8. JS 作用域与变量提升---JS 学习笔记(三)

    你知道下面的JavaScript代码执行时会输出什么吗? var foo = 1; function bar() { if (!foo) { var foo = 10; } console.log(f ...

  9. js中的变量提升(hoisting)

    来看如下代码: function HelloJS(){ var array = [1,2,3,4,5]; for(var i in array){ } alert(i); } HelloJS(); a ...

随机推荐

  1. rem 布局的闪现问题

    <script type="text/javascript"> var sizeRate = document.documentElement.clientWidth/ ...

  2. LeetCode 4. Median of Two Sorted Arrays & 归并排序

    Median of Two Sorted Arrays 搜索时间复杂度的时候,看到归并排序比较适合这个题目.中位数直接取即可,所以重点是排序. 再来看看治阶段,我们需要将两个已经有序的子序列合并成一个 ...

  3. 重识linux-linux主机上的用户信息传递

    1 查询用户 w,who,last,lastlog 1)在线用户查询  w ,who 2)账号最近的登录时间  last lastlog 2 用户对谈 write,mesg,wall 1)write ...

  4. 1.如何在Cloud Studio上执行Python代码?

    1.在python文件下新建python文件,输入文件名后按Enter键生成,比如: one.py . 2.简单输入python代码: print "haha" 3.打开左下角的终 ...

  5. python中的split、rsplit、splitlines

    split()从左向右寻找,以某个元素为中心将左右分割成两个元素并放入列表中 rsplit()从右向左寻找,以某个元素为中心将左右分割成两个元素并放入列表中 splitlines()根据换行符(\n) ...

  6. 3. easyui 修改功能实例

    function modifyPerson() { var rows = $('#personInfoGrid').datagrid('getSelections'); if (rows.length ...

  7. react-native 安卓支持 gif动态图

    需要在android/app/build.gradle文件中添加模块 //这一行没有的话得加上才行 compile "com.facebook.fresco:fresco:1.5.0&quo ...

  8. sql server导入excel数据

    1.sql导入工具,数据源选择 microsoft excel 2.有odbc配置过的连接excel或其他数据库,都可以选择netframwork data provider for odbc,在ds ...

  9. Spring boot 启动配置原理

    配置在META-INF/spring.factories 有几个主要的类 ApplicationContextInitializer    创建SpringAplication SpringAppli ...

  10. mingw编译ffmpeg 错误:Unknown option "--enable-memalign-hack"

    据说mingw编译ffmpeg的话需要添加 --enable-memalign-hack 开关 但如果源码是最新版比如:ffmpeg4.0.2 的话 好像已经禁用了该开关. “我可以确认新的ffmpe ...