##javascript我的筆記javascript
JavaScript的組成
JavaScript是一種運行在客戶端的腳本語言html
- ECMAScript 標準----js的基本的語法
- DOM------Document Object Model 文檔對象模型
- BOM------Browser Object Model 瀏覽器對象模型
###JavaScript是什麼java
- 是一門腳本語言
- 是一門解釋性語言
- 是一門動態類型的語言
- 是一門基於對象的語言
js和 html不同的是js是一門編程語言,而html是一門編程語言python
補充: 1,腳本語言和編譯語言的區別 編譯語言須要經過編譯器編譯成計算機可執行的而二進制程序(例如C語言) 腳本語言是不須要通過編譯器的編譯,就能夠經過相應軟件(例如瀏覽器)來直接運行的程序(例如shell,sql,cmd,js)web
腳本語言是經過解釋器來,在腳本語言運行的過程當中進行逐行解釋並運行的;也就是說只有程序運行的時候解釋器纔對腳本語言進行解釋,於是腳本語言每執行一次,就須要編譯一次,因此解釋性腳本語言其運行的效率相對較低sql
2,java和python不是真正意義上的腳本語言和編譯語言shell
java和python會將寫好的源代碼文件編譯爲對應的字節碼文件(此步操做爲編譯的過程),隨後在將字節碼文件加載到虛擬機中,經過虛擬機中的解釋器根據不一樣的操做系統來對字節碼文件進行解釋,因此java和python都是一門先編譯後解析的語言。編程
###JavaScript的起源瀏覽器
js原名不是JavaScript,而是LiveScript;webstorm
js和java沒有任何的關係;
世界上第一臺瀏覽器是網景公司(NetScape)發明的Naviagtor瀏覽器
JS的做用:是解決用戶和瀏覽器之間進行交互的問題
在瀏覽器中,有一個JavaScript引擎,專門用來解析js腳本,以使js能夠直接經過瀏覽器來運行
同理瀏覽器還有還有引擎專門用來解析html和CSS的瀏覽器引擎(此處詳見html的筆記)
JS的書寫位置
js的代碼能夠分三個地方寫: 1.在html的文件中,script的標籤中寫js代碼
<script> //js代碼 alert("鋤禾日當午,地雷埋下土,小蘇走過去,炸成二百五");//在頁面中彈出對話框 </script>
2.js代碼能夠在html的標籤中寫----內嵌形式
<input type="button" value="按鈕" onclick="alert('被點了');"/>
3.在js文件中能夠寫js代碼,可是須要在html的頁面中引入 script的標籤中的src="js的路徑" ---外聯形式
<script src="test.js"></script> //這是寫在須要引入js的html文件中的
使用JS須要注意的幾個問題:
1,若是在一對script標籤中,若是有一行js的代碼出現了問題,那麼該行代碼之後的語句也不會被執行
2,若是一對script標籤中,若是js的代碼出現了問題,其是不會影響其餘script標籤對的
3,script的標籤中能夠寫什麼內容 type="text/javascript"(標準寫法)或者寫language="JavaScript"(提升兼容性用)均可以
可是在h5中 這是能夠省略的(ps:若是是使用h4以前的嚴格模式或是使用h4的過渡模式的話,就必須爲其加上上述屬性)
4,有可能會出現這種狀況:script標籤中可能同時出現type和language的寫法.
5,script標籤在頁面中能夠出現多對
6,script標籤通常是放在body的標籤的最後的,有的時候會在head標籤中,目前講課的時候都在body標籤的後面(即body中的最後面){若是將js的代碼放置到html標籤的外部,在瀏覽器解析的時候其也會將js放入到body的最後邊的,可是這是增長瀏覽器的操做負擔,因此是不提倡的}
7,若是script標籤是引入外部js文件的做用,那麼這對標籤中不要寫任何的js代碼(就是寫了,也不起做用。並且到了JQuery的時候,script標籤中的代碼會和外部文件產生衝突,從而致使代碼出現錯誤),若是要寫,從新寫一對script標籤,裏面寫代碼
WebStorm使用小技巧: 在webstorm工具中打開頁面: 1. 右上角有瀏覽器圖標,直接點擊便可 2. 快捷鍵: Alt+F2 回車或者上下鍵選擇
###變量:
1.操做的數據都是在內存中操做
2.js中存儲數據使用變量的方式(名字,值--->數據)
3.js中聲明變量都用var---->存儲數據,數據應該有對應的數據類型
4.js中的字符串類型的值都用雙引號或者單引號
//變量聲明 var name; //變量初始化 name = "小黑";
注意的基本的代碼的規範 1. js中聲明變量都用var 2. js中的每一行代碼結束都應該有分號;(js書寫的時候能夠沒有分號結尾,可是通常建議使用分號結尾) 3. js中的大小寫是區分的: var N=10; n 4. js中的字符串可使用單引號,也可使用雙引號,目前咱們暫時使用雙引號
變量名的注意問題---變量名的命名規範,要遵循駝峯命名法 1.變量的名字要有意義, 2.變量名有必定的規範:通常以字母,$符號,下劃線開頭,中間或者後面能夠有$符號,字母,數字 3.變量名通常都是小寫的 4.變量名若是是多個單詞,第一個單詞的首字母是小寫的,後面的全部的單詞的首字母都是大寫的,這種命名方式稱爲:駝峯命名法 5.不能使用關鍵字(系統自帶的一些單詞,不能使用) 6.不會單詞用拼音,拼音也要遵循駝峯命名法
輸出js的幾個方法
var num = 100; //1,在瀏覽器中以彈窗的形式輸出數據 alert(num); //2,在瀏覽器中的Console(控制檯 快捷鍵爲F12)中輸出 console.log(num);
sublime使用小技巧: 1,格式化代碼 Ctrl+Alt+L(使用該代碼的前提條件是,本來的代碼是正確的,沒有錯誤的)
註釋
1,單行註釋 //
2,多行註釋 /**/ {不能夠嵌套使用}
數據類型
JS中數據類型有如下幾種:
一,6大原始數據類型:
number(數字類型[整數和浮點數]) | string(字符串類型) | boolean(布爾類型) |
---|---|---|
null(空) | undefined(未定義的) | object(對象) |
通常狀況下 0表示假 非0值表示真
①.可能出現undefined的狀況:
1,變量在定義後,沒有賦值,那麼輸出的就是undefined
2,函數在調用後,沒有返回值,可是卻使用變量來接收了,此時也是undefined
②.NAN 表示的是not a number
③.使用typeof來獲取變量的數據類型
使用形式有
typeof 變量名;
typeof (變量名);
var num = null; alert(typeof num); //返回的是object alert(String(num));//返回的是null //在上述代碼中,若是使用第二行代碼,其表示的是一個沒有存聽任何值的對象,因此其返回的數據類型是object //若是使用第三行代碼,其表示的是將沒有任何值的對象中的值取出來,並轉換爲字符串後輸出,因此其返回的數據類型的是null
js能夠表示除了二進制以外的全部進制
八進制以0開頭 十六進制以0x開頭
Number的數值範圍
最小值:Number.MIN_VALUE,這個值爲: 5e-324 最大值:Number.MAX_VALUE,這個值爲: 1.7976931348623157e+308 無窮大:Infinity 無窮小:-Infinity
數字類型有範圍: 最小值和最大值 console.log(Number.MAX_VALUE);//數字的最大值 console.log(Number.MIN_VALUE);//數字的最小值
//小數由於精度而存在的BUG //不要用小數去驗證小數. // var x=0.1; // var y=0.2; // var sum=x+y; //在js中0.1+0.2=0.300000000000000004 // console.log(sum==0.3);//false
數值判斷
- NaN:not a number
- NaN 與任何值都不相等,包括他自己
- isNaN: is not a number
- 可使用isNaN() 來判斷須要比較的對象 其不是一個數字
字符串類型
補充知識點:轉義字符
1, 字符串便可以使用單引號,也可使用雙引號
2,獲取字符串的長度 ====> str.length
//只要有一個是字符串,其餘的是數字,那麼結果也是拼接,不是相加 //若是有一個是字符串,另外一個不是字符串,使用- 號,此時會發生計算 // var str1="10"; // var str2=20; // console.log(str1+str2); //1020 // var str1 = "10"; // var str2 = 5; // //瀏覽器幫助咱們自動的把字符串類型轉成了數字類型,這種方式叫:隱式轉換(★) // console.log(str1-str2); //5
Boolean類型
- Boolean字面量: true和false,區分大小寫
- 計算機內部存儲:true爲1,false爲0
Undefined和Null
- undefined表示一個聲明瞭沒有賦值的變量,變量只聲明的時候值默認是undefined
- null表示一個空,變量的值若是想爲null,必須手動設置
數據類型轉換
如何使用谷歌瀏覽器,快速的查看數據類型?
字符串的顏色是黑色的,數值類型是藍色的,布爾類型也是藍色的,undefined和null是灰色的
轉換成字符串類型
-
toString()
var num = 5; console.log(num.toString());
-
String()
String()函數存在的意義:有些值沒有toString(),這個時候可使用String()。好比:undefined和null
-
拼接字符串方式
num + "",當 + 兩邊一個操做符是字符串類型,一個操做符是其它類型的時候,會先把其它類型轉換成字符串再進行字符串拼接,返回字符串
轉換成數值類型
-
Number()
Number()能夠把任意值轉換成數值,若是要轉換的字符串中有一個不是數值的字符,返回NaN 也就是說只有所有都是數字的時候,Number方法才能夠把須要轉換的對象轉換爲數字,不然就會轉換爲NAN
-
parseInt()
var num1 = parseInt("12.3abc"); // 返回12,若是第一個字符是數字會解析知道遇到非數字結束 var num2 = parseInt("abc123"); // 返回NaN,若是第一個字符不是數字或者符號就返回NaN
-
parseFloat()
parseFloat()把字符串轉換成浮點數 parseFloat()和parseInt很是類似,不一樣之處在與 parseFloat會解析第一個. 遇到第二個.或者非數字結束 若是解析的內容裏只有整數,解析成整數
-
+,-等運算
var str = '500'; console.log(+str); // 取正 console.log(-str); // 取負 console.log(str - 0);
轉換成布爾類型
-
Boolean()
0 ''(空字符串) null undefined NaN 會轉換成false 其它都會轉換成true