回顧 JavaScript
-
歷史及發展
1995年 網景公司的布蘭登開發;
1997年7月,ECMA組織發佈ECMAScript 1.0版;
2007年10月發佈3.1版本後不久,ECMAScript 3.1改名爲 ECMAScript 5。
2008年,爲Chrome瀏覽器而開發的V8編譯器誕生
2011年6月,ECMAscript 5.1版發佈,現在使用最爲廣泛的版本;
2015年6月,ECMAScript 6正式發佈,並且更名爲“ECMAScript 2015”;
-
如何學習JavaScript
JavaScript 的核心語法部分相當精簡,也就是語言本身,只包括兩個部分:
-
基本的語法構造(比如操作符、控制結構、語句)
-
標準庫(就是一系列具有各種功能的對象比如Array、Date、Math等)。
想要實現其他複雜的操作和效果,都要依靠 宿主環境 提供API,目前,已經嵌入 JavaScript 的宿主環境有多種,最常見的環境就是 瀏覽器 和 操作系統 ;
-
- 回顧 JavaScript 語法特性
- 變量、數據類型、流程控制
- 函數(基本聲明參數,作用域,回調函數)、面向對象(原型,構造函數,this的指向,new的過程)
六類數據類型
字符串
對象(數組,函數,Object)
布爾
null
undefined
數值
節點操作和計算字符長度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="div">hello</div>
</body>
<script>
var d = document.getElementById('div');
d.style.background = 'blue';
alert(1);
var s = '123456';
console.log(s.length);
</script>
</html>
遍歷數組
// 直接量(字面量)
var ar = ['a','b','c'];
for(var i=0;i<ar.length;i++){
console.log(ar[i]);
}
for(i in ar){
console.log(ar[i]);
}
ar.forEach(function(k,h,v){
// console.log(k);
// console.log(h);
console.log(v);
})
函數聲明和調用
var obj1 = {name:'hello',age:56,fun:function(){
alert(222);
}};
console.log(obj1.name)
console.log(obj1.fun);
console.log(obj1.fun());
f1();
f2();
// 直接量(字面量)
// 聲明前後都可以調用
function f1(){
console.log(1);
}
// 表達式聲明
// 只能在聲明後調用
var f2 = function(a,b){
console.log(2);
return ;
}
f2(1,2)
效果預覽:
內置構造函數請移步 Javascript 構造函數
// 在JS中函數被稱爲第一等公民
// 在JS中函數是一個特殊的數據類型
var a = 1;
function f1(f2){
// console.log(v);
var a = 2;
f2();
}
// 在 JS 中函數自身的作用域在聲明的地方,而不是調用的地方
function f2(){
console.log(a);
}
f1(f2);
效果預覽:
閉包函數請移步
阮一峯 - 學習Javascript閉包(Closure)
簡數 - 你不懂JS:作用域與閉包 第三章:函數與塊兒作用域
深入理解JS中聲明提升、作用域(鏈)和this
關鍵字
對象查看
var o = {};
console.log(o.__proto__)
效果預覽:
Node是什麼
Node
是一個基於Chrome V8
引擎的JavaScript
運行環境。
Node
不是一種獨立的語言、Node
不是 JavaScript
框架,
Node
是一個除了瀏覽器之外的、可以讓JavaScript
運行的環境(即是一種javascript的運行環境,能夠使得javascript脫離瀏覽器運行)
Node.js 是一個讓 JavaScript 運行在服務端的開發平臺,是使用 事件驅動, 異步非阻塞I/O,單線程,跨平臺的 JS 運行環境;
爲什麼要學習 Node
對於前端工程師來說
- 打開服務器的黑盒子
- 企業需求
- 大前端必備技能
- 爲了更好的學習前端框架
ps : node 是前端必備,後端需要了解就行
Node 能做什麼
- Web 服務器(重點)
- 命令行工具
- 網絡爬蟲:是一種按照一定的規則,自動地抓取網站信息的程序
- 桌面應用程序開發
一些資源
1. 文檔
Node.js 官方文檔
Node.js 中文文檔(非官方)
2. 書籍
深入淺出 Node.js
Node.js 權威指南
Node.js 實戰
Node.js實戰(第2季)
3. github資源
Node.js 包教不包會
ECMAScript 6 入門
七天學會 NodeJS
4. 社區