http://www.cnblogs.com/yuanchenqi/articles/5980312.htmljavascript
在瞭解變量以前,咱們首先學習JavaScript的引入方式html
{#1 直接編寫#} <script> alert('hello zhanzhengrecheng') </script> {#2 導入文件#} <script src="hello.js"></script>
即在程序運行過程當中它的值是容許改變的量。與它對應的就是常量:即在程序運行過程當中它的值是不容許改變的量java
js是跟python同樣一樣是弱類型的語言,python中定義變量沒有關鍵字: str = ‘james’python
可是在js中定義變量使用關鍵字:var str = ‘james’;c++
對於便利的理解:變量是數據的代號。如同人的名字同樣。es6
var num; // 在JavaScript中使用關鍵字var聲明一個變量
在JavaScript中,使用上面的語法,就能夠聲明一個變量,以便在以後給其指定值。安全
var num; num = 128; // 這樣num作微值128的一個名字,有了名字,就能夠在以後引用! document.write(num); // 輸出128
var dog; // alert(dog) //undefined 未定義 // 定義 dog = '小黃';
var dog_2 = '小紅'; console.log(dog_2); //小紅
var 34bad;//不能以數字開頭 var per人;//不能包含中文 var bad-var;//非法的- var var;//var就是一個關鍵字,因此很明顯不能用來作變量名
關鍵字:var number等 除了關鍵字 top name 也儘可能不使用。
關鍵詞:函數
保留字學習
javascript保留關鍵詞3d
javascript的保留關鍵字不能夠用做變量,標籤或者函數名,有些保留關鍵字是做爲javascript之後擴展使用。
Camel 標記法 首字母是小寫的,接下來的字母都以大寫字符開頭。例如: var myTestValue = 0, mySecondValue = "hi"; Pascal 標記法 首字母是大寫的,接下來的字母都以大寫字符開頭。例如: Var MyTestValue = 0, MySecondValue = "hi"; 匈牙利類型標記法 在以 Pascal 標記法命名的變量前附加一個小寫字母(或小寫字母序列), 說明該變量的類型。例如,i 表示整數,s 表示字符串,以下所示「 Var iMyTestValue = 0, sMySecondValue = "hi";
js中的運算符跟python中的運算符有點相似,但也有不一樣。所謂運算,在數學上,是一種行爲,經過已知量的可能的組合,得到新的量。
以var x = 12,y=5來演示示例
var a = 5,b=2
var x = 5;
字符串拼接+字符串運算 特殊狀況。python中有拼接字符串中更簡便的辦法,其實在js中也有,你們能夠百度引擎搜索es6模板字符串。(擴展)
var firstName = '星'; var lastName = 'Li'; var name = '伊拉克'; var am = '美軍'; // 字符串拼接 var str = "2003年3月20日,"+name+"戰爭爆發, 以美軍爲主的聯合部隊僅用20多天就擊潰了薩達姆的軍隊。 這是繼十多年前的海灣戰爭後,"+am+"又一次取得的大規模壓倒性軍事勝利。" var fullStr = str; console.log(fullStr) var fullName = firstName +" "+ lastName; console.log(fullName)
// 不能對字符串進行+運算 只能拼接 var a1 = '1'; var a2 = '2'; console.log(a1-a2) //12
var b1 = 'one'; var b2 = 'two'; // NaN. ==== not a number 是number類型 console.log(typeof(b1*b2))
數據類型包括:基本數據類型和引用數據類型
基本數據類型指的是簡單的數據段,引用數據類型指的是有多個值構成的對象。
當咱們把變量賦值給一個變量時,解析器首先要確認的就是這個值是基本類型值仍是引用類型值
var dog; dog="小虎子"; //字符串,他們總被包含在雙引號(或單引號)中 var num; num=1;//數字,它們裸露的出現了 var strNum; strNum="1";//可是如今strNum所引用的是一個字符串,由於它被包含在引號中了 var badNum; badNum=3.345;//一個小數,由於它帶有一個小數點 badNum=.2;//仍然是一個小數,這句代碼與badNum=0.2是同樣的! badNum = 0.4.5;//固然,這句代碼是錯的,一個非法數字
undefined
Undefined 類型 Undefined 類型只有一個值,即 undefined。當聲明的變量未初始化時, 該變量的默認值是 undefined。 當函數無明確返回值時,返回的也是值 "undefined"; Null 類型 另外一種只有一個值的類型是 Null,它只有一個專用值 null,即它的字面量。 值 undefined 其實是從值 null 派生來的,所以 ECMAScript 把它們定義爲相等的。 儘管這兩個值相等,但它們的含義不一樣。undefined 是聲明瞭變量但未對 其初始化時賦予該變量的值,null 則用於表示還沒有存在的對象(在討論 typeof 運算符時,簡單地介紹過這一點)。若是函數或方法要返回的是對象,那麼找不 到該對象時,返回的一般是 null。 var person=new Person() var person=null
var d1; //表示變量未定義 console.log(typeof d1)
null
var c1 = null;//空對象. object console.log(c1)
boolean
簡介 Boolean類型僅有兩個值:true和false,也表明1和0,實際運算中true=1,false=0 布爾值也能夠看做on/off、yes/no、1/0對應true/false Boolean值主要用於JavaScript的控制語句,例如 if (x==1){ y=y+1; }else { y=y-1; }
var b1 = false; console.log(typeof b1)
string
var str = '123' console.log(typeof str)
簡介 是由Unicode字符、數字、標點符號組成的序列 字符串常量首尾由單引號或雙引號括起 JavaScript中沒有字符類型 經常使用特殊字符在字符串中的表達 字符串中部分特殊字符必須加上右劃線\ 經常使用的轉義字符 \n:換行 \':單引號 \":雙引號 \\:右劃線
字符串相連
var s1="Hello,"; s1=s1+"World!"; alert(s1); s1+="!!!!"; alert(s1);
js中的運算符跟python中的運算符有點相似,但也有不一樣。所謂運算,在數學上,是一種行爲,經過已知量的可能的組合,得到新的量。
//加法 + //減法 - //乘法 * //除法 / //自增 ++ //自減 -- var a = 12; var b = 30; var c = a+b; alert(c);//輸出42 c=b-a; alert(c);//輸出18 c=c*2; alert(c);//輸出36 c=c/2; alert(c);//輸出18 c = 12; c++;//這與c=c+1;效果是同樣的 alert(c);//輸出13 c--;//這與c=c-1;效果是同樣的 alert(c);//輸出11 //自增與自減運算符出現的地方也有講究 c=20; alert(c++);//輸出20,由於++寫在變量後面,這表示變量c完成運算以後,再將其值增1 alert(c);//如今將輸出21,自減運算符也與些類似 //若是隻是相似這樣的計算 c = c+12; //能夠這樣寫 c+= 12;//這與寫c= c+12;效果是同樣的 //相似其它的運算也有簡便的方法 c-=3;//c=c-3 c*=4;//c=c*3; c/=2;//c=c/2;
要注意的是,在JavaScript,鏈接字符串時也使用「+」號。當字符串與數字相遇時?——JavaScript是弱類型語言
var num=23+45; alert("23+45等於"+num);//表達式從左往右計算,字符串以後的數字都會當成字符串然鏈接 alert("23+45="+(23+45));//使用括號分隔
比較操做符:<,>,<=,>=,==,!=,!;比較操做符返回布爾值
//小於 < //大於 > //小於或等於 <= //大於或等於 >= //相等 == //不相等 != alert(2<4);//返回true alert(2>4);//返回false alert(2<=4);//返回true alert(2>=2);//返回true alert(2==2);//返回true alert(2!=2);//返回true
alert( (2<4)==(5>3)==(3<=3)==(2>=2)==(2!=2)==(2==2)==true );
// &&邏輯與,當兩邊的值都爲true時返回true,不然返回false // || 邏輯或,當兩邊值都爲false時返回false,不然返回true // ! 邏輯非 alert(true && false);//輸出false alert(true && true);//輸出true alert(true || false);//輸出true alert(false || false);//輸出false alert(!true);//輸出false
JavaScript屬於鬆散類型的程序語言 變量在聲明的時候並不須要指定數據類型 變量只有在賦值的時候纔會肯定數據類型 表達式中包含不一樣類型數據則在計算過程當中會強制進行類別轉換 數字 + 字符串:數字轉換爲字符串 數字 + 布爾值:true轉換爲1,false轉換爲0 字符串 + 布爾值:布爾值轉換爲字符串true或false
因爲JavaScript是弱類型語言,因此咱們安全能夠將字符串和數字(兩個不一樣類型的變量)進行相加,這個咱們在前面已經演示過了,固然,不只僅能夠將字符串和數據相加,還能夠將字符串與數據相乘而不會出現腳本錯誤!
var str ="some string here!"; var num = 123; alert(str*num);//將輸出NaN,由於乘法運算符只能針對數字, //因此進行運算時計算機會將字段串轉換成數字 //而這裏的字符串轉換成數字將會是NaN //NaN是一個特殊的值,含義是"Not A Number"-不是一個數字, //當將其它值轉換成數字失敗時會獲得這個值 str ="2"; alert(str*num);//將輸出246,由於str能夠解析成數字2
var bool = true; alert(bool*1);//輸出1 ,布爾值true轉換成數字爲1,事實上將其它值轉換在數字最簡單的方法就是將其乘以1 bool = false; alert(bool*1);//輸出0 alert(bool+"");//輸出"flase",將其它類型轉換成字符串的最簡單的方法就是將其寫一個空字符串相連 alert(123+"");//數字總能轉換成字符串 var str = "some string"; alert(!!str);//true,由於非運算符是針對布爾值進行運算的,因此將其它類型轉換成布爾值只須將其連續非兩次 str =""; alert(!!str);//輸出false,只有空字符串轉換成布爾值時會是false,非空字符串轉換成布爾值都會返回true var num =0; alert(!!num);//false num=-123.345; alert(!!num);//true,除0之外的任何數字轉換成布爾值都會是true //還有一個很是重要的是,空字符串轉換成數字將會是0 alert(""*1);//輸出0
獲取變量類型 typeof 運算符
var bool = true; alert(typeof bool);//輸出boolean var num =123; alert(typeof num);//輸出number var str = "some string here"; alert(typeof str);//輸出string var strNum = "123"; alert(typeof strNum);//輸出string strNum *= 1; alert(typeof strNum);//輸出number
var n1 = 123; var n2 = '123'; var n3 = n1+n2; // 隱式轉換 console.log(typeof n3);
// 強制類型轉換String(),toString() var str1 = String(n1); console.log(typeof str1); var num = 234; console.log(num.toString())
var stringNum = '789.123wadjhkd'; var num2 = Number(stringNum); console.log(num2) // parseInt()能夠解析一個字符串 而且返回一個整數 console.log(parseInt(stringNum)) console.log(parseFloat(stringNum));
var b1 = '123'; var b2 = 0; var b3 = -123 var b4 = Infinity; var b5 = NaN; var b6; //undefined var b7 = null; // 非0既真 console.log(Boolean(b7))