JavaScript中提前声明变量或函数例子


Posted in Javascript onNovember 12, 2014

如题所示,看下面的示例。

(可以使用Chrome浏览器,然后F12/或者右键,审查元素.调出开发者工具,进入控制台console输入)
(使用技巧: 控制台输入时Shift+Enter可以中途代码换行)

var name = "xiaoming";
(function(){ 

  var name = name || "小张";

  console.info(name);

})();// 小张
(function(){

  name = name || "小张";

  console.info(name);

})(); // xiaoming
(function(){

  var name2= name;

  var name = name || "小张";

  console.info(name, name2);

})(); // 小张 undefined 

执行时的截图如下所示:

JavaScript中提前声明变量或函数例子

解释如下:

在JavaScript中。

function xxx(){

  // 一堆代码...

  // ...

  var name2 = name;

  var name = name || "小张";

  // 一堆代码

}

执行时会变成这种等价形式:

function xxx(){

  var name2 = undefined;

  var name = undefined;

  // 其他 var 也会被提前到最起始处

  // 一堆代码...

  // ...

  name2 = name;

  name = name || "小张";

  // 一堆代码

}
Javascript 相关文章推荐
JavaScript 实现??打印?理
Apr 28 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
Dec 05 Javascript
js获得当前时区夏令时发生和终止的时间代码
Feb 23 Javascript
js中javascript:void(0) 真正含义
Nov 05 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
Jan 19 Javascript
jquery.validate提示错误信息位置方法
Jan 22 Javascript
JS碰撞运动实现方法详解
Dec 15 Javascript
微信小程序开发之toast提示插件使用示例
Jun 08 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
浅谈Node模块系统及其模式
Nov 17 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
May 26 Javascript
微信小程序自定义tabBar的踩坑实践记录
Nov 06 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
Nov 12 #Javascript
js在IE与firefox的差异集锦
Nov 11 #Javascript
超炫的jquery仿flash导航栏特效
Nov 11 #Javascript
推荐JavaScript实现继承的最佳方式
Nov 11 #Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 #Javascript
jQuery 动态云标签插件
Nov 11 #Javascript
javascript 回调函数详解
Nov 11 #Javascript
You might like
php&java(二)
2006/10/09 PHP
php csv操作类代码
2009/12/14 PHP
javascript &&和||运算法的另类使用技巧
2009/11/28 Javascript
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
JS+CSS实现简易实用的滑动门菜单效果
2015/09/18 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
JavaScript省市级联下拉菜单实例
2017/02/14 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
解决angularjs service中依赖注入$scope报错的问题
2018/10/02 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
移动端吸顶fixbar的解决方案详解
2019/07/17 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
javascript实现图片轮换动作方法
2020/08/07 Javascript
跟老齐学Python之编写类之三子类
2014/10/11 Python
Python3写入文件常用方法实例分析
2015/05/22 Python
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
三步实现Django Paginator分页的方法
2019/06/11 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
关于前端上传文件全面基础扫盲贴(入门)
2019/08/01 HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
2013/04/24 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
vue路由实现登录拦截
2021/03/24 Vue.js
经营管理策划方案
2014/05/22 职场文书
室内设计专业自荐信
2014/05/31 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
出售房屋委托书范本
2014/09/24 职场文书
红色经典观后感
2015/06/18 职场文书
2016个人先进事迹材料范文
2016/03/01 职场文书
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers