1、c++
1 .JavaScript基礎語法程序員
註釋:數組
1.單行註釋:函數
//單行註釋this
多行註釋:spa
/*debug
*較長的多行指針
*註釋對象
*ip
*/
最好是針對某個功能來寫註釋
2. 語句
在JavaScript中,語句通常以分號結尾,每條語句獨佔一行來寫代碼;不寫分號也不會報錯,可是代碼壓縮時可能會有問題,建議加上分號。
let i = 10;
console.log(i);//10
可使用C語言風格一對大括號將多條語句組合到一個代碼塊裏。
{
let i = 10;
console.log(i);//10
}
3. 標識符
所謂標識符,就是指用來標識某個實體的一個符號。再說通俗一點,就是本身起一個名字,這個名字能夠用來做爲變量名,函數名,對象名等。在JavaScript中,雖說標識符是本身取名字,可是也是須要遵照必定的規則, 其命名的規則大體能夠分爲2大類:硬性要求和軟性要求。
硬性要求:
1.能夠是由數字,字母,下劃線和美圓符號組成,不容許包含其餘特殊符號
2.不能以數字開頭
3.禁止使用JavaScript中的關鍵詞和保留字來進行命名。
4.嚴格區分大小寫
軟性要求:
望文知意。
命名的三種方法
1.匈牙利命名法:
是微軟公司下面覺得匈牙利籍的程序員所發明的命名法則,其特色是標識符的名字以一個或者多個小寫字母開頭,表示該變量的數據類型;
| 數據類型 | 對應前綴 |
| -------- -------
| Array數組 | a |
| Boolean布爾 | b |
| Float浮點 | f |
| Function | fn |
| Interger(int)整型 | i |
| Object對象 | o |
| Regular Expression正則| re |
| String 字符串 | s |
前綴以後的是一個單詞或多個單詞的組合,該單詞代表代表變量的用途。
例如:a_array,o_object,i_userAge ,b_isPassed.
2.駝峯命名法:
大駝峯:就是每個單詞都是首字母大寫。例如:UserName
小駝峯:第一個單詞的首字母是小寫,後面單詞的首字母是大寫。例如:userName。
3.蛇形命名法:
特色在於單詞與單詞之間使用下劃線進行分隔。
這種命名法常見於Linx內核,c++標準庫,Boost以及Ruby,Rust等語言。
例如:user_name,my_name.
4.關鍵字和保留字
首先須要弄清楚關鍵字和保留字的區別是什麼。
ECMA-262描述了一組具備特定用途的關鍵字。這些關鍵字可用於表示控制語句的開始或結束,或者用於執行特定操做等。按照規則,關鍵字是語言自己所保留的,不能用做標識符。
ECMA-262還描述了另一組不能用做標識符的保留字。儘管保留字在這門]語言中尚未任何特定的用途。但它們有可能在未來被用做關鍵字。
JavaScript中的關鍵字與保留字以下:
abstract、await、 boolean、 break、 byte、 case、 catch、 char、 class、 const、continue、debugger、default、 delete、 do、 double、 else、 enum、export、
extends、false、 final、finally、float、 for、 function、 goto、 if、 implements、 import、 in、 instanceof、 int、
interface、let、long、native、new、null、package、private、 protected、 public、 return、short、static、 super、
switch、 synchronized、 this、 throw、 throws、 transient、 true、 try、typeof、var、 volatile、 void、 while、 with、 yield
5. 數據類型介紹
在JavaScript中,數據類型總體上來說能夠分爲兩大類:簡單數據類型和複雜數據類型
簡單數據類型:
簡單數據類型一共有6種:
string, symbol, number, boolean, undefined, null其中symbol類型是在ES6裏面新添加的基本數據類型
複雜數據類型:
複雜數據類型就只有1種object
包括JavaScript中的數組,正則等,其類型都是object類型
查看數據類型:
在JavaScript中,咱們能夠經過typeof運算符來查看一個數據的數據類型
console. log( typeof 10);//number
console. log(typeof true);//boolean
console. log(typeof 'Hello');//string
console. log(typeof [1,2,3]);//object
2、變量
所謂變量,就是用於引用內存中存儲的一一個值。固然, 咱們在使用變量以前,還須要先作的一件事兒就是聲明變量。
1.聲明變量
在JavaScript中聲明變量的方式有3種: var ,let ,const 。其中var如今已經不推薦使用了,由於會有變量提高等問題。(後面咱們會具體來探討此問題)
const和let的區別在於,const 所聲明的變量若是是簡單數據類型,那麼是不可以再改變的。而let所聲明的變量不管是簡單數據類型仍是複雜數據類型,在後面是能夠改變的。示例以下:
const聲明變量
const name = 'Bill';
name = 'Lucy';
//TypeError: Assignment to constant variable.
let聲明變量
let name = 'Bill';
name = 'Lucy';
console.log(name);
2. 變量的賦值與初始化
利用=給變量進行賦值,第一次賦值叫作初始化。在聲明變量時就會將變量給初始化,以下:
let a = 3
也能夠一次性初始化多個變量,將其寫在一行裏面。
let x = 3,y = 4,z = 5;
若是聲明變量時沒有賦予初值,那麼默認值爲undefined
let a;
console.log(a);//undefined
3. 使用var聲明變量
前面有提到過,在JavaScript中聲明變量的方式有3種: var, let , const。其中var如今已經不推薦使用了。這是由於使用var來聲明變量會伴隨着一些問題。 固然,這些問題也常常被看做是JavaScript的一些特色,例如重複聲明和遺漏聲明。
重複聲明
若是是使用var關鍵字來聲明的變量,那麼是容許重複聲明的。只不過這個時候會忽略這次聲明。若是從新聲明而且帶有賦值,則至關因而從新賦值
重複聲明不帶有賦值操做,JS引擎會自動忽略後面的變量聲明
var test = 3;var test;
var test;
console. log(test);//3
從新聲明時若是帶有賦值操做,那麼會進行一一個數據的覆蓋
var test = 3;var test = 5;
var test = 5;
console. log(test);//5
須要註釋重複聲明僅僅是使用var關鍵字時能夠這樣,若是是在嚴格模式中,或者使用let或const的話是會報錯的。
遺漏聲明
若是試圖讀取一個沒有聲明的變量的值,JS會報錯
console.log(a);
//ReferenceError: a is not defined
JS容許遺漏聲明,即直接對變量賦值而無需事先聲明,賦值操做會自動聲明該變量。
{
a = 5;
console.log(a);//5
}
console.log(a);//5
4. 做用域
1.全局做用域
這是JS引擎-進來就處於的運行環境。在全局做用域的中所聲明變量稱之爲全局變量。全局變量的特色在於變量在任何地方都能被訪問。
let a = 5;//這是一個全局變量
2.局部做用域
在JavaScript中,一對大括號就能夠產生一個局部做用域。局部做用域裏面的變量稱之爲局部變量,既然是局部變量,那麼就只能在這個局部的做用域裏面能訪問到,外部是訪問不到的。
{
leti=10;
console. log(i) ;//10
console.log(i);
//ReferenceError: i is not defined
順帶一提的是,在大括號中用var聲明的變量不是局部變量,而是一個全局變量。這其實也是最先使用var來聲明變量所遺留下來的一一個問題。
{
var i = 10;
console.log(i);//10
}
console.log(i);//10
在局部做用域裏面,若是變量名和全局做用域裏面的變量名衝突,優先使用局部做用域裏面的變量。
let i = 10;
{
let i = 100;
console.log(i);//100
}
console.log(i);//10
若是在局部做用域裏面聲明變量時沒有書寫關鍵字,那麼會申明一個全局變量
{
i = 10;
}
console.log(i);//10
3、數據類型
數據類型介紹
在JavaScript中,數據類型總體上來說能夠分爲兩大類:簡單數據類型和複雜數據類型
簡單數據類型
簡單數據類型一共有6種:
string, symbol, number, boolean, undefined, null其中symbol類型是在ES6裏面新添加的基本數據類型
1.Undefined類型
只有一個值,即undefined值。使用var聲明瞭變量,但未給變量初始化值,那麼這個變量的值就是undefined。
2.Null類型
null類型被看作空對象指針,前文說到null類型也是空的對象引用。
3.Boolean類型
該類型只有兩個值,true和false
4.Number類型
Number類型包含整數和浮點數(浮點數數值必須包含一個小數點,且小數點後面至少有一位數字)兩種值。
NaN:非數字類型。特色:1.涉及到的 任何關於NaN的操做,都會返回NaN 2. NaN不等於自身。
isNaN() 函數用於檢查其參數是不是非數字值。
isNaN(123) //false isNaN("hello") //true
5.String類型
字符串有length屬性。
字符串轉換:轉型函數String(),適用於任何數據類型(null,undefined 轉換後爲null和undefined);toString()方法(null,defined沒有toString()方法)。
6 symbo類型
ES5中包含5種原始類型:字符串、數字、布爾值、null和undefined。ES6引入了第6種原始類 型:symbol
ES5的對象屬性名都是字符串,很容易形成屬性名衝突。好比,使用了 一個他人提供的對象,想 爲這個對象添加新的方法,新方法的名字就有可能與現有方法產生衝突。若是有一種機制,保證 每一個屬性的名字都是獨一無二的,這樣就從根本上防止了屬性名衝突。這就是ES6引入symbol的 緣由。
複雜數據類型
複雜數據類型就只有一種object
包括JavaScript中的數組,正則等,其類型都是object類型
查看數據類型
在JavaScript中,咱們能夠經過typeof運算符來查看一個數據的數據類型
console. log( typeof 10);//number
console. log(typeof true);//booleanconsole. log(typeof 'Hello');//stringconsole. log(typeof [1,2,3]);//object