【学习笔记】JavaScript编码规范-声明提升

变量声明应该在作用域的顶端,但是赋值没有。

function example(){
var declaredButAssigned;
//如下输出 declaredButNotAssigned 未定义
console.log(declaredButNotAssigned)
declaredButNotAssigned = true
}

匿名表达式能提升他们的变量名,但不能提升函数赋值。

function example(){
console.log(anonymous); //未定义
anonymous();//类型错误
var anonymous = function(){
console.log('anonymous function expression');
}
}

命名函数表达式会提升变量名,而不是函数名或者函数体。

function example(){
console.log(AAA);// undefined
AAA();//TypeError AAA is not a function

BBB();//ReferenceError BBB is not define

var AAA = function BBB(){console.log('Hi~~')};

}
//当变量名同函数名称一样
function example2(){
console.log(AAA);// undefined
AAA();//TypeError
var AAA = function named(){console.log('Hello');};
}

函数声明会提升变量名和函数体

function example(){
AAA();
function AAA(){
console.log('Hi~~');
}
}
时间: 2024-11-09 02:53:34

【学习笔记】JavaScript编码规范-声明提升的相关文章

学习一份百度的JavaScript编码规范

JavaScript编码规范 1 前言 2 代码风格 2.1 文件 2.2 结构 2.2.1 缩进 2.2.2 空格 2.2.3 换行 2.2.4 语句 2.3 命名 2.4 注释 2.4.1 单行注释 2.4.2 多行注释 2.4.3 文档化注释 2.4.4 类型定义 2.4.5 文件注释 2.4.6 命名空间注释 2.4.7 类注释 2.4.8 函数/方法注释 2.4.9 事件注释 2.4.10 常量注释 2.4.11 复杂类型注释 2.4.12 AMD 模块注释 2.4.13 细节注释 3

web项目开发 之 前端规范 --- JavaScript编码规范

JavaScript编码规范 此文严格按照W3C规范和部分实际项目可读性,浏览器加载,性能等众多属性权衡,做出平时前端编码规范文档.供广大web工作者参考并实施,对维护和项目扩展升级都能省时省力. 场景:web前端开发中 一些Javascript的注意事项 和 规格建议: [参考百度资料 和个人一些总结] 1 前言 JavaScript 在百度一直有着广泛的应用,特别是在浏览器端的行为管理.本文档的目标是使 JavaScript 代码风格保持一致,容易被理解和被维护. 虽然本文档是针对 Java

JavaScript 编码规范 之 原括号

; Function() ; function Test() {} ; Test() // 作为函数使用是 应紧贴字符 Function () 这样会误以为声明函数 ; test = function () // function(){} 这里会误会成 调用函数 { } ; if ( true ) { } ; while ( true ) { } ; for ( ; true ; ) { } ; test = ( function () { }()) JavaScript 编码规范 之 原括号

JavaScript作用域与声明提升【翻译】

原文链接:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html JavaScript作用域与声明提升 你知道下面JavaScript执行后alert的值吗? 1 var foo = 1; 2 function bar() { 3 if (!foo) { 4 var foo = 10; 5 } 6 alert(foo); 7 } 8 bar(); 如果因为结果为“10”而吃惊,那么可能你需要好好看看这篇文章: 1 va

网易前端JavaScript编码规范

在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊聊javascript的编码规范. 总所周知,javascript是一种语法极其灵活的语言.javascript在设计之初就只是用来为HTML添加动态效果的.由于他动态,弱类型 等特性,以及不同浏览器的兼容性问题,造成了开发成本要比java等语言要高很多.正因为它太灵活,我们制定了适用于网易邮箱的j

学习笔记---Javascript事件Event、IE浏览器下的拖拽效果

学习笔记---Javascript事件Event.IE浏览器下的拖拽效果     1. 关于event常用属性有returnValue(是否允许事件处理继续进行, false为停止继续操作).srcElement(触发事件的事件源对象)和attachEvent("onclick",function(){...}); 2. a. 实现拖放(Drag and Drop): 目前支支持IE, 若定制某对象为可拖放对象, 则必须覆盖目标对象的dragenter和dragover事件, 可以用e

前端Javascript编码规范

在多年开发邮箱webmail过程中,网易邮箱前端团队积累了不少心得体会,我们开发了很多基础js库,实现了大量前端效果组件,开发了成熟的opoa框架以及api组件,在此向大家做一些分享.今天想先和大家聊聊javascript的编码规范. 总所周知,javascript是一种语法极其灵活的语言.javascript在设计之初就只是用来为HTML添加动态效果的.由于他动态,弱类型等特性,以及不同浏览器的兼容性问题,造成了开发成本要比java等语言要高很多.正因为它太灵活,我们制定了适用于网易邮箱的ja

JavaScript 编码规范 之 函数表达式

! function () { var a = function () // 赋值一个函数表达式 { } , b = function () // b c 效果一样 都是返回一个拥有闭包的函数 { var time = +new Date ; return function () { ; console.log( time ) } }() , c = ( function () // 加上圆括号的原因 1 表示是立即执行 2 拥有闭包元素 { var time = +new Date ; ret

JavaScript 编码规范 之 花括号

//花括号位置 ; function A () { ; return //; retrun; // 这里会自动补分号 所以 返回 undefined 除了这里好久还没发现哪会出错 { } } ; function B () { ; return { // 这样可以避免错误 但是对齐强迫症的人 很纠结 本人就属于这种 } // 还有个原因是 这种写法在编码器里不能很好的折叠 } ; function C () { ; return { // 当然我们这一个小小的原因就放弃对齐 这是很奇怪的 记住就