1.js介紹&變量&基礎數據類型css
2.類型查詢&運算符&if判斷&for循環html
3.while循環&三元運算符前端
4.函數java
5.今日總結node
1.js介紹&變量&基礎數據類型python
js介紹es6
(1)什麼是JavaScript&一些歷史&ECMASCRIPT和JavaScript的關係?數據庫
JavaScript是一門編程語言,既能夠寫前端,又能夠寫後端.可是JavaScript有不少槽點,所以咱們如今更適合作前端的開發.(以如今的認知水平)編程
(2)後端
JavaScript是網景公司(Netscape公司)開發的,可是如今倒閉了,被美國一家公司收購.
當年靜態網頁已經遠遠知足不了人們對網頁的需求,由此,js應運而生,知足了人們對動態網頁的追求.
js起名字也是蹭了當年java的熱度,二者沒有太大的聯繫
(3)
網景公司最後決定將JavaScript提交給國際標準化組織ECMA,但願這門語言可以成爲國際標準。
次年,ECMA發佈262號標準文件(ECMA-262)的初版,規定了瀏覽器腳本語言的標準,並將這種語言稱爲ECMAScript,這個版本就是1.0版。
該標準一開始就是針對JavaScript語言制定的,可是沒有稱其爲JavaScript,有兩個方面的緣由。一是商標,JavaScript自己已被Netscape註冊爲商標。二是想體現這門語言的制定者是ECMA,而不是Netscape,這樣有利於保證這門語言的開發性和中立性。
所以,ECMAScript和JavaScript的關係是,前者是後者的規格,後者是前者的一種實現。
(4)
網景公司的大神10天寫出來的語言,龜叔聖誕節寫了一門python.
JavaScript能夠寫前端/後端,能夠鏈接數據庫
可是JavaScript槽點太多,而且不報錯,因此很難寫
JavaScript輔助咱們寫項目
(5)
儘管 ECMAScript 是一個重要的標準,但它並非 JavaScript 惟一的部分,固然,也不是惟一被標準化的部分。實際上,一個完整的 JavaScript 實現是由如下 3 個不一樣部分組成的:
(6)
簡單地說,ECMAScript 描述了JavaScript語言自己的相關內容。
JavaScript 是腳本語言
JavaScript 是一種輕量級的編程語言。後來出現了node.js,能夠做爲後端語言來開發項目,js是一個既能作前端又能作後端的語言,可是js這個做者用了10天就開發了這麼個語言,因此寫的不是很完善,這個語言有不少的槽點,後面學習起來你們就知道啦。
JavaScript 是可插入 HTML 頁面的編程代碼。
JavaScript 插入 HTML 頁面後,可由全部的現代瀏覽器執行。
JavaScript 很容易學習。
JavaScript引入方式
方式一:Script標籤內寫代碼
在head標籤裏面能夠寫,在body標籤裏面也能夠寫,放到head標籤裏面和放到body標籤裏面到底有什麼區別,咱們後續在講~
<script> // 在這裏寫你的JS代碼
//console.log('你好,我是JavaScript!!') #f12建打開瀏覽器的調試窗口,而後在console這個調試臺就能看到這個內容了
alert('你好,我是JavaScript!') #這個是瀏覽器窗口一打開我們這個文件,就彈出一個窗口 </script>
具體代碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> // 在這裏寫你的JS代碼 //console.log('你好,我是JavaScript!') #f12鍵打開瀏覽器的調試窗口,而後在console這個調試臺就能看到這個內容了 alert('你好,我是JavaScript!') // #這個是瀏覽器窗口一打開我們這個文件,就彈出一個窗口 </script> </head> <body> </body> </html>
代碼以下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> // 在這裏寫你的JS代碼 console.log('你好,我是JavaScript!') // #f12鍵打開瀏覽器的調試窗口,而後在console這個調試臺就能看到這個內容了 // alert('你好,我是JavaScript!') // #這個是瀏覽器窗口一打開我們這個文件,就彈出一個窗口 </script> </head> <body> </body> </html>
在開始調試的瀏覽器上,按F12=>console,能夠看見了
html中的完整代碼:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="07js初識.js"> </script> </head> <body> </body> </html>
js完整代碼:
alert('你好啊!');
核心部分
<script src="myscript.js"></script>
myscript.js文件
alert('你好啊!'); #注意單詞的寫法,以及須要加上;
結果顯示:
注意:彈窗的alert()在console不顯示,而 console.log()在console顯示
代碼也能夠直接在console寫,課上代碼通常在瀏覽器上寫就好了,瀏覽器內置的js解釋器
JavaScript語言規範
註釋:
// 這是單行註釋 /* 這是 多行註釋 */
結束符:
JavaScript中的語句要以分號(;)爲結束符。也就是說和縮進不要緊了
注意區分:python不是以分號結尾的
JavaScript語言基礎
變量聲明(咱們就經過瀏覽器自帶的那個調試臺來寫吧~~)
1.JavaScript的變量名可使用_,數字,字母,$組成,不能以數字開頭。
2.聲明變量使用 var 變量名; 的格式來進行聲明
var name = "Alex"; 也能夠分兩步,聲明變量var name;而後name='Alex',可是一般咱們都是一步寫完 var age = 18;
注意:
變量名是區分大小寫的。
推薦使用駝峯式命名規則。首字母大寫
保留字不能用作變量名。
ES6新增const用來聲明常量。一旦聲明,其值就不能改變。這個東西就是爲了定義一個固定的常量,供你們使用,這個常量不會改變
const PI = 3.1415; PI // 3.1415 PI = 3 // TypeError: "PI" is read-only
常量測試:
再次補充:保留字列表,不用硬記,寫多了天然就知道了
測試1:
測試2:(es6新特性,如今瀏覽器也嵌套了)let也是不可修改的
JavaScript數據類型
JavaScript擁有動態類型(python也是動態的)
var x; // 此時x是undefined 靜態語言好比c:建立變量的時候,要指定變量的類型,python3.6也出現了類型註解的新特性def func(x:int,y:int) --> int: return x + y,意思是參數是int類型,返回值也是int類型的,就是個註釋的做用 var x = 1; // 此時x是數字 var x = "Alex" // 此時x是字符串
數值(Number)
JavaScript不區分整型和浮點型,就只有一種數字類型。
var a = 12.34; var b = 20; var c = 123e5; // 12300000 var d = 123e-5; // 0.00123
還有一種NaN,表示不是一個數字(Not a Number),也就是說是一個值,但不是數字。
經常使用方法:
parseInt("123") // 返回123 parseInt("ABC") // 返回NaN,NaN屬性是表明非數字值的特殊值。該屬性用於指示某個值不是數字。 parseFloat("123.456") // 返回123.456
parse:
字符串(String)
var a = "Hello" var b = "world; var c = a + b; console.log(c); // 獲得Helloworld
slice和substring的區別:
string.slice(start, stop)和string.substring(start, stop): 二者的相同點: 若是start等於end,返回空字符串 若是stop參數省略,則取到字符串末 若是某個參數超過string的長度,這個參數會被替換爲string的長度 substirng()的特色: 若是 start > stop ,start和stop將被交換 若是參數是負數或者不是數字,將會被0替換 silce()的特色: 若是 start > stop 不會交換二者 若是start小於0,則切割從字符串末尾往前數的第abs(start)個的字符開始(包括該位置的字符) 若是stop小於0,則切割在從字符串末尾往前數的第abs(stop)個字符結束(不包含該位置字符)
查看數據類型:
測試1:
字符串操做測試:
注意:(1)反引號鍵是1左邊的那個鍵.
(2)在console換行是:shift+enter
注意下面反引號的區別:重點!!!!!!!!!
布爾值(Boolean)
區別於Python,true和false都是小寫。
var a = true; var b = false;
""(空字符串)、0、null、undefined、NaN都是false。
null和undefined
null表示變量的值是空,undefined則表示只聲明瞭變量,但尚未賦值。
對象(Object)
JavaScript 中的全部事物都是對象:字符串、數值、數組、函數...此外,JavaScript 容許自定義對象。
JavaScript 提供多個內建對象,好比 String、Date、Array 等等。
對象只是帶有屬性和方法的特殊數據類型。
自定義對象能夠認爲是咱們python中的列表.
數組:
數組對象的做用是:使用單獨的變量名來存儲一系列的值。相似於Python中的列表。
var a = [123, "ABC"]; console.log(a[1]); // 輸出"ABC"
數組的經常使用方法
test1:
var c=new string("aaa");#對象類型的字符串
注意:數組也叫array
sort有坑
splice() #刪除並添加新的元素
sort() #將數字轉成字符串,在按照ascii碼的排序,進行排序
2.類型查詢&運算符&if判斷&for循環
自定義對象
注意上邊的區別
類型查詢
運算符:
流程控制
var a = 10; if (a > 5){ console.log("yes"); }else { console.log("no"); }
例子:
複製代碼 var a = 10; if (a > 5){ console.log("a > 5"); }else if (a < 5) { console.log("a < 5"); }else { console.log("a = 5"); }
var day = new Date().getDay(); //示例化一個今天的日期對象,getDay()是獲取天數的編號,0表示星期日 switch (day) { //這裏day這個參數必須是一個值或者是一個可以獲得一個值的算式才行,這個值和後面寫的case後面的值逐個比較,知足其中一個就執行case對應的下面的語句,而後break,若是沒有加break,還會繼續往下判斷 case 0: //若是day是0 console.log("Sunday"); //執行它 break; //而後break跳出 case 1: console.log("Monday"); break; default: //若是沒有任何知足條件的,就執行它 console.log("...") }
switch中的case子句一般都會加break語句,不然程序會繼續執行後續case中的語句。
注意寫法
例子:
for (var i=0;i<10;i++) { //就這麼個寫法,聲明一個變量,變量小於10,變量每次循環自增1,for(;;){console.log(i)};這種寫法就是個死循環,會一直循環,直到你的瀏覽器崩了,就不工做了,回頭能夠拿別人的電腦試試~~ console.log(i); }
3.while循環&三元運算符
var i = 0; while (i < 10) { console.log(i); i++; }
test:
var a = 1; var b = 2; var c = a > b ? a : b
//若是a>b這個條件成立,就把冒號前面的值給c,不然把冒號後面的值給c
//python中的:a = x if x>y else y
4.函數
函數定義
JavaScript中的函數和Python中的很是相似,只是定義方式有點區別。
// 普通函數定義 function f1() { console.log("Hello world!"); } // 帶參數的函數 function f2(a, b) { console.log(arguments); // 內置的arguments對象 console.log(arguments.length); console.log(a, b); } // 帶返回值的函數 function sum(a, b){ return a + b; //在js中,若是你想返回多個值是不行的,好比return a ,b;只能給你返回最後一個值,若是就想返回多個值,你能夠用數組包裹起來 return [a,b]; } sum(1, 2); // 調用函數 sum(1,2,3,4,5)參數給多了,也不會報錯,仍是執行前兩個參數的和,sum(1),少參數或者沒參數也不報錯,不過返回值就會是NAN // 匿名函數方式,多和其餘函數配合使用,後面咱們就會用到了 var sum = function(a, b){ //在es6中,使用var,可能會飄黃,是由於在es6中,建議你使用let來定義變量,不過不影響你使用 return a + b; } sum(1, 2); // 當即執行函數,頁面加載到這裏,這個函數就直接執行了,不須要被調用執行 (function(a, b){ return a + b; })(1, 2); //python中寫能夠這麼寫:ret=(lambda x,y:x+y)(10,20) 而後print(ret)
補充:
ES6中容許使用「箭頭」(=>)定義函數,能夠理解爲匿名函數,用的很少。
var f = v => v; // 等同於 var f = function(v){ return v; }
若是箭頭函數不須要參數或須要多個參數,就是用圓括號表明參數部分:
var f = () => 5; // 等同於 var f = function(){return 5}; var sum = (num1, num2) => num1 + num2; // 等同於 var sum = function(num1, num2){ return num1 + num2; }
test:
運行html後,在console輸入,f1();纔會調用,(這種方式是調用纔會執行)
上邊這個是自執行函數,加載就會執行.(上邊這個是非傳參的自執行函數)
(傳參的自執行函數)
函數中的arguments參數(看一下就好了)
function add(a,b){ console.log(a+b); console.log(arguments.length) //獲取傳入的參數的個數,arguments就是指的你傳入的全部的實參,放在一個數組裏面,這個arguments.length是統計這個數組的元素的個數。 } add(1,2)
輸出:
3 2
注意:
函數只能返回一個值,若是要返回多個值,只能將其放在數組或對象中返回。
今日總結