JavaScript基礎知識點
1.陣列拷貝
var arr1=[1,2,3];
var arr2 = arr1.slice();
2.將陣列中元素以某個標示符連線成字串
var items,
messages,
length,
i;
messages = [{
state: 'success',
message: 'This one worked.'
}, {
state: 'success',
message: 'This one worked as well.'
}, {
state: 'error',
message: 'This one did not work.'
}];
length = messages.length;
// bad
function inbox(messages) {
items = '<ul>';
for (i = 0; i < length; i++) {
items += '<li>' + messages[i].message + '</li>';
}
return items + '</ul>';
}
// good
function inbox(messages) {
items = [];
for (i = 0; i < length; i++) {
items[i] = messages[i].message;
}
return '<ul><li>' + items.join('</li><li>') + '</li></ul>';
}
3.變數提升
Variable declarations get hoisted to the top of their scope, their assignment does not.
// we know this wouldn't work (assuming there
// is no notDefined global variable)
function example() {
console.log(notDefined); // => throws a ReferenceError
}
// creating a variable declaration after you
// reference the variable will work due to
// variable hoisting. Note: the assignment
// value of `true` is not hoisted.
function example() {
console.log(declaredButNotAssigned); // => undefined
var declaredButNotAssigned = true;
}
// The interpreter is hoisting the variable
// declaration to the top of the scope.
// Which means our example could be rewritten as:
function example() {
var declaredButNotAssigned;
console.log(declaredButNotAssigned); // => undefined
declaredButNotAssigned = true;
}
Anonymous function expressions hoist their variable name, but not the function assignment.
function example() {
console.log(anonymous); // => undefined
anonymous(); // => TypeError anonymous is not a function
var anonymous = function() {
console.log('anonymous function expression');
};
}
Named function expressions hoist the variable name, not the function name or the function body.
function example() {
console.log(named); // => undefined
named(); // => TypeError named is not a function
superPower(); // => ReferenceError superPower is not defined
var named = function superPower() {
console.log('Flying');
};
}
// the same is true when the function name
// is the same as the variable name.
function example() {
console.log(named); // => undefined
named(); // => TypeError named is not a function
var named = function named() {
console.log('named');
}
}
Function declarations hoist their name and the function body.
function example() {
superPower(); // => Flying
function superPower() {
console.log('Flying');
}
}
相關文章
- JavaScript部分基礎知識點JavaScript
- 前端知識點總結——JavaScript基礎前端JavaScript
- javascript基礎知識JavaScript
- javascript事件基礎知識JavaScript事件
- 前端-JavaScript基礎知識前端JavaScript
- JavaScript 基礎知識入門JavaScript
- JavaWeb基礎知識點JavaWeb
- java基礎知識點Java
- JavaScript入門①-基礎知識築基JavaScript
- JavaScript基礎知識(Date 的方法)JavaScript
- 【轉】JavaScript物件的基礎知識JavaScript物件
- Servlet基礎知識點整理Servlet
- Python基礎知識點梳理Python
- Java基礎知識點梳理Java
- 必需知道的javaScript基礎知識JavaScript
- Java基礎知識點總結Java
- Java 基礎面試知識點Java面試
- Java入門基礎知識點Java
- vueX基礎知識點筆記Vue筆記
- ES 基礎知識點總結
- Redis 基礎知識點總結Redis
- Dubbo基礎入門知識點
- IdentityServer4系列 | 初識基礎知識點IDEServer
- JavaScript知識點整理JavaScript
- Flutter 知識點總結-基礎篇Flutter
- JavaSE基礎 (全網最全知識點)Java
- 基礎知識
- Android知識點回顧之Activity基礎Android
- Java基礎面試知識點總結Java面試
- 多執行緒基礎知識點梳理執行緒
- JS基礎-完美掌握繼承知識點JS繼承
- OC中常見基礎知識點彙整
- Android知識點回顧之Service基礎Android
- python基礎語法知識點總結Python
- 【學習】MySQL基礎知識要點-001MySql
- vue的一些基礎知識點Vue
- JavaScript知識點彙總JavaScript
- Nice!JavaScript基礎語法知識都在這兒了JavaScript
- Envoy基礎知識