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 ...
随机推荐
- QQ号码正则判断
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- mybatis-plus 从2.x到3.x升级指南
Mybatis-Plus mybatis-plus 2.x 到 3.x 有以下改进 分页查询可以直接返回Ipage<T>的子类(下面会有详细使用说明) Wrapper<T> ...
- 安全测试4_客户端的安全漏洞(XSS、CSRF、点击劫持、URL跳转)
那个fanh前面学习的都是基础,现在开始正式学习下安全的知识,这一章主要讲解客户端常见的安全漏洞. 看到这个不错,给大家记一下: 1.常见的安全事件: 2.XSS(跨站脚本),英文全称:Cross S ...
- Centos下添加用户并赋权
创建新用户 创建一个用户名为:linuxidc [root@localhost ~]# adduser linuxidc 为这个用户初始化密码,linux会判断密码复杂度,不过可以强行忽略: [roo ...
- Linux 虚拟机VMware安装失败,提示没有选择磁盘
提示安装位置:没有选择磁盘 磁盘类型问题. 在新建虚拟机向导时会推荐选项 重新安装就有磁盘了
- thinkphp 验证的使用
TP5验证可分为独立验证和验证器: 独立验证是可直接写在控制器里直接验证如下: //独立验证 $data = [ 'name'=>'vendor33333', 'email'=>'vaen ...
- PerformCallback(珍藏版)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PerformCallback. ...
- eclipse中jdk源码调试步骤
分析源码是学习一项技术内幕最有效的手段.由于正常的引入JAr包源码没法进行对源码打断点,想要深入了解源码不方便.下面就开始介绍源码调试的步骤. 1.在eclipse新建一个JAVA项目compare_ ...
- springboot 端口号
1. 读取端口号 2.多端口运行 2.
- Phabricator代码审核Audit用户指南
作者: shaneZhang 分类: 互联网技术 发布时间: 2015-07-04 13:37 概览 Phabricator支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提 ...