JavaScript語法
JavaScript版本
歷史版本
- ES3,IE6支援,不給力
- ES5,不給力
- ES6,大部分瀏覽器支援,一半給力,一半不給力
- ES2019與ES6差距不大
ES6一半給力,一半不給力?
- ES不能刪除以前的特性,要相容舊網站
- 以前能執行的網站,以後也能執行
- 相對比較穩定
JavaScript語法
表示式\語句\識別符號
表示式
- 1+2表示式的值為3
- add(1,2)表示式的值為函式的返回值
console.log // log(){[native code]}
表示式的值為函式本身console.log(3) // undefined
console.log(3),它的返回值是undefined,因為console.log函式的返回值是undefined
語句
- var a = 1是一個語句
var $1 = 1;var _____ = 1;//不建議這麼寫;var 9a = 1;//報錯,語法錯誤
;;;//不會報錯,空語句
兩者區別
- 表示式一般有值,語句可能有可能沒有
- 語句一般會改變環境(宣告,賦值)
- 上面兩句話並不是絕對的
特別注意
- 大小寫敏感
- var a與var A不同
- object與Object不同
- function與Function不同
- 空格
- 大部分空格都沒有實際意義
- var a = 1和var a=1無區別
- 加回車大部分時候無影響
- 只有一個地方加回車,那就是return後面,程式碼舉例
function f(){ return
3;
} //預想的是返回3,結果加了回車,返回了undefined;
######識別符號
- 第一個字元,可以是Unicode字母或者$或_或中文
- 後面的字元,除了上述所說,可以是數字
- 變數名是識別符號
//以下js都是支援的
var _ = 1;
var $ = 1;
var ______ = 6;
var 你好 = 'hi'
註釋
- 不好的註釋
//1.把程式碼翻譯成中文
var person = {
name:'java'; //name為java
age:18; //年齡為18
sex:'男'; // 性別為男
}
//2.過時的註釋
var person = {
age:19; //年齡為18
}
//3.發洩不滿的註釋
var person = {
eat:'哈哈';//我擦,就是個傻X
}
- 好的註釋
- 踩坑程式碼
- 程式碼為啥這麼寫,遇到什麼bug
區塊block
//1.把程式碼包在一起
{
let a = 1;
let b = 2;
}
//2.常常與if/for/while合用
條件語句
//1.if語句
if(){}else{}
/*
//變態情況
11.條件表示式裡面賦值,如a=1
*/
var a = 2;
if( a = 1){console.log("彩筆");}else{console.log("牛逼");}//彩筆
/*
//變態情況
12.多層巢狀if-else
*/
/*
//變態情況
13.縮排
*/
var a = 1;
if( a === 2) console.log(1)
console.log(2) //2
//14.推薦用法
if(表示式){
語句;
}else if(表示式){
語句;
}else {
語句;
}
//2.switch語句
switch(age){
case 18:
//...
break;
case 19:
//...
break;
default:
//...
}
/*
要注意break不能隨意省掉
*/
//3.三目運算子 表示式? 表示式2:表示式3
//4.邏輯&&
A && B && C && D;//取第一個假值或者D,並不會取true/false
//5.邏輯或
A || B || C || D;//取第一個真值或者D,並不會取true/false
######迴圈語句
- while
while(表示式){語句}
//舉例
var i = 1;
while(i<10){
console.log(i);
i = i+1;
}//在chrome中輸出0,1,2,3,4,5,6,7,8,9,10 正確打出0~9,10chrome出bug啦
//這種寫法不要寫
while(true){console.log(1)};//耗CPU效能
//這種寫法會進入死迴圈,原因浮點數精度丟失導致
var a = 0.1;
while(a < 1){
a = a + 0.1;
}
- for
for(var i=0;i < 5; i ++){
console.log(i);
}//最後輸出的是0,1,2,3,4,i= ? i為5
break/continue
1.break退出本次迴圈
for(var i = 0; i < 5;i++){
if(i === 3){
break;
}
}
2.continue 進行下一個迴圈
for(var i = 0; i < 5;i++){
if(i === 3){
continue;
}
}
label
1.語法
foo:{
console.log(1);
break foo;
console.log(2);
}//1
//Chrome輸出的是一個物件,在火狐裡面是1
{
foo:1
}
//Chrome輸出的1,在火狐裡面是1
{
foo:1;
}
相關文章
- javascript基本語法JavaScript
- JavaScript 語法介紹JavaScript
- Javascript中的with語法JavaScript
- JavaScript 函式語法JavaScript函式
- JavaScript的核心語法JavaScript
- 04JavaScript語法JavaScript
- JavaScript 語法筆記JavaScript筆記
- JavaScript 基礎語法JavaScript
- JavaScript 新語法 「雙問號語法」與「可選鏈語法」JavaScript
- PHP Javascript 語法對照PHPJavaScript
- Javascript與抽象語法樹JavaScript抽象語法樹
- javascript運算子語法概述JavaScript
- JSX(JavaScript XML)語法JSJavaScriptXML
- PHP Javascript 語法對照、速查PHPJavaScript
- javascript字串的語法介紹JavaScript字串
- 《JavaScript 闖關記》之語法JavaScript
- Javascript——ES6( ECMAScript 6.0)語法JavaScript
- javascript,ES6最常用語法JavaScript
- JavaScript新增型別語法Type SyntaxJavaScript型別
- Javascript 學習筆記--語法篇JavaScript筆記
- JavaScript進階之基礎語法JavaScript
- JavaScript學習筆記---基本語法JavaScript筆記
- JavaScript-快速語法參考-全-JavaScript
- JavaScript 基礎卷(一):基礎語法JavaScript
- Python 與 JavaScript 語法差異點PythonJavaScript
- JavaScript 中一顆有毒的語法糖JavaScript
- 前端進階之 Javascript 抽象語法樹前端JavaScript抽象語法樹
- web路途-基礎的JavaScript語法概要WebJavaScript
- 4、JavaScript進階篇①——基礎語法JavaScript
- javascript中正規表示式的基礎語法JavaScript
- 抽象語法樹在 JavaScript 中的應用抽象語法樹JavaScript
- JavaScript的基礎語法及DOM元素和事件JavaScript事件
- 高階前端基礎-JavaScript抽象語法樹AST前端JavaScript抽象語法樹AST
- 前端入門9-JavaScript語法之運算子前端JavaScript
- 前端入門11-JavaScript語法之陣列前端JavaScript陣列
- javascript快速入門7--ECMAScript語法基礎JavaScript
- JavaScript語法中將json轉成陣列JavaScriptJSON陣列
- 很想有種像javascript語法的伺服器指令碼語言JavaScript伺服器指令碼