javascript
[No0000101]JavaScript-基础课程1
JavaScript 是一種輕量級(jí)的編程語(yǔ)言,很容易學(xué)習(xí),同時(shí)也是一種被廣泛用于客戶端Web開發(fā)的腳本語(yǔ)言。通過本課程學(xué)習(xí),我們可以了解到JavaScript的基本語(yǔ)法知識(shí),以及怎樣使用它去創(chuàng)建簡(jiǎn)單的游戲和應(yīng)用。
1.獲取字符的長(zhǎng)度
"youName".length;2.使用"+"加法、"-"減法、"*"?乘法和"/"除法,對(duì)兩個(gè)數(shù)字進(jìn)行運(yùn)算;
3."//"是注釋,注釋是一個(gè)文本行,JavaScript無(wú)法運(yùn)行這行代碼。它只是用來讓人們閱讀的。
4.這是JavaScript(JS)編程語(yǔ)言。編程語(yǔ)言有很多語(yǔ)言,但JS有許多用途,很容易學(xué)習(xí)。
我們可以使用JavaScript來做什么?
5.輸入
prompt("你叫什么名字?"); prompt("你多大了?");6.數(shù)據(jù)有各種類型,您已經(jīng)使用了兩個(gè)。
還有一種類型是boolean,布爾值。它有兩個(gè)值true或false。例如,比較兩個(gè)數(shù)字返回真或假的結(jié)果:23 > 10?是?true。
var length = "我編碼如飛".length; console.log(length); length > 10?
7.console.log()會(huì)將括號(hào)內(nèi)的內(nèi)容打印到控制臺(tái);
8.到目前為止,我們已經(jīng)學(xué)習(xí)了三種數(shù)據(jù)類型:
比較運(yùn)算符列表:
注意: ?"=="?兩邊值類型不同的時(shí)候,會(huì)進(jìn)行類型轉(zhuǎn)換,再比較。 ?"==="不做類型轉(zhuǎn)換,類型不同的一定不等。 ?例如:5 == "5"?結(jié)果為true,而5 === "5"?結(jié)果為false。
console.log(15 > 4); // 15 > 4 判斷為true,所以打印結(jié)果是true console.log("Xiao Hui".length<122); console.log("Goody Donaldson".length<8); console.log(8*2===16);9.if語(yǔ)句是由if關(guān)鍵詞、一個(gè)條件和一對(duì)大括號(hào){ }組成。如果條件的結(jié)果是true,花括號(hào)內(nèi)的代碼將運(yùn)行。
if( "youName".length >= 7 ) {console.log("你有一個(gè)很長(zhǎng)的名字!"); } if( "myName".length >= 7 ) {alert("你的名字很長(zhǎng)!"); }else {alert("你的名字很短"); }10.我們遇到一個(gè)有趣的符號(hào)稱為 "%" 模。放在兩個(gè)數(shù)字之間時(shí),計(jì)算機(jī)將第一個(gè)數(shù)字除以第二個(gè),然后返回余數(shù)。所以如果我們計(jì)算 23 % 10 ,我們用23除以10,結(jié)果為2,余數(shù)是3,所以23%10結(jié)果為3。
11.x是指從哪里開始截取,y是指到哪里結(jié)束。字符串中的每個(gè)字符編號(hào)從0開始.
"some word".substring(x, y);12.通過一個(gè)具體的,區(qū)分大小寫的名稱定義一個(gè)變量。一旦您用特定名稱創(chuàng)建(或聲明)一個(gè)變量,然后你可以通過這個(gè)變量名來獲取這個(gè)值。
var varName = data;13.一個(gè)函數(shù)接受輸入,并做一些處理后,產(chǎn)生輸出。
// 函數(shù)看起來就像是這樣的: var divideByThree = function (number) {var val = number / 3;console.log(val); }; // 在第12行,我們調(diào)用函數(shù)的名字 //在這里,它被稱為“dividebythree” // 我們告訴計(jì)算機(jī)輸入數(shù)量(即6) // 然后電腦運(yùn)行函數(shù)內(nèi)的代碼! divideByThree(6);1、?首先,我們使用var聲明一個(gè)函數(shù),然后給它起一個(gè)名字divideByThree。名字應(yīng)以小寫字母開頭,該約定是使用駝峰命名法(每個(gè)單詞首字母大寫,第一單詞除外)。
2、 然后使用?function關(guān)鍵字來告訴計(jì)算機(jī)你正在創(chuàng)建一個(gè)函數(shù)。
3、 括號(hào)中的代碼被稱為一個(gè)參數(shù)。這是一個(gè)占位符,當(dāng)我們調(diào)用的時(shí)候會(huì)給它一個(gè)特定的值。
4、 然后將你要重復(fù)的代碼寫在“{ }”之間,每段代碼必須用“;”來結(jié)束。
可以調(diào)用函數(shù)來運(yùn)行這段代碼:divideByThree(6);
使用函數(shù),我們只需要輸入函數(shù)名來調(diào)用函數(shù),并將參數(shù)傳入到后面的括號(hào)中。電腦將運(yùn)行可重復(fù)使用的代碼,并將具體的參數(shù)值替換到代碼中。
14.return關(guān)鍵字告訴程序什么時(shí)候函數(shù)要返回?返回值。所以函數(shù)運(yùn)行到return關(guān)鍵字時(shí),該功能會(huì)立即停止運(yùn)行并返回值。
// 好的函數(shù)寫法 var calculate = function (number) {var val = number * 10;//就算沒有這樣的間距或換行,計(jì)算機(jī)也是可以理解這些代碼的,但使用間距和換行可以使編碼更加容易查看,并且這是最好的做法。console.log(val);//代碼塊的每一行和函數(shù)的末尾都要加上分號(hào),分號(hào)的作用就像是一段中的一句,它有助于計(jì)算機(jī)知道每句代碼在什么時(shí)候結(jié)束。 }; // 寫的很糟的函數(shù) var greeting = function(name){console.log(name);}在編程D.R.Y.原則是非常重要的。不要重復(fù)!
作用域可以是全局或局部。
在函數(shù)外部定義的變量一旦被聲明就可以在任何地方訪問,它們被稱為全局變量或者說它們的作用域是全局的。
到目前為止我們看到的函數(shù)只有一個(gè)參數(shù)。但函數(shù)寫多個(gè)參數(shù)通常是有用的。
var areaBox = function(length, width) {return length * width; };函數(shù)內(nèi)部定義的變量是局部變量。他們無(wú)法在函數(shù)外部訪問。
var關(guān)鍵字會(huì)在當(dāng)前作用域創(chuàng)建一個(gè)新的變量。這意味著,如果變量被聲明在函數(shù)之外,該變量就具有全局的作用域。如果變量被聲明在函數(shù)中,該變量就具有局部的作用域。
var my_number = 7; //這是全局變量 var timesTwo = function(number) {my_number = number * 2;console.log("內(nèi)部函數(shù)中 my_number 的值是: ");console.log(my_number); }; timesTwo(7); console.log("外部 my_number 值是: ") console.log(my_number);在第4行,我們沒有使用var關(guān)鍵字,所以我們?cè)诤瘮?shù)外用console.log打印出my_number的值將會(huì)是14。
15.
?16.數(shù)組:
任何時(shí)候當(dāng)你看到有“[]”的數(shù)據(jù),它就是一個(gè)數(shù)組。當(dāng)你調(diào)用數(shù)組的?.length時(shí),將返回?cái)?shù)組元素的數(shù)量。
每個(gè)數(shù)據(jù)的位置是從0開始計(jì)算的,而不是1;數(shù)組的第一個(gè)元素:junkData[0]; 數(shù)組中的第三個(gè)元素:junkData[2];
var text = "Blah blah blah blah blah blah Eric \ blah blah blah Eric blah blah Eric blah blah \ blah blah blah blah blah Eric"; var myName = "Eric"; var hits = []; // Look for "E" in the text for(var i = 0; i < text.length; i++) {if (text[i] == "E") {// 如果找到了,就添加到數(shù)組中// 長(zhǎng)度和myName長(zhǎng)度一樣for(var j = i; j < (myName.length + i); j++) {hits.push(text[j]);}} } if (hits.length === 0) {console.log("沒有發(fā)現(xiàn)你的名字!"); } else {console.log(hits); }?由于text可能會(huì)比較長(zhǎng),你可以使用反斜杠“\”來結(jié)束,然后在下一行繼續(xù)寫;
?數(shù)組有一個(gè)push()方法,它會(huì)將括號(hào)中的內(nèi)容添加到數(shù)組末尾。
newArray = []; newArray.push('hello'); newArray[0]; // 等于 'hello' var coinFace = Math.floor(Math.random() * 2); while(coinFace === 0){console.log("正面! 繼續(xù)...");var coinFace = Math.floor(Math.random() * 2); } console.log("反面! 停止.");?
?16.你可能已經(jīng)注意到,當(dāng)我們給一個(gè)變量賦值boolean類型值為true時(shí),我們不需要用 === 來檢查這個(gè)變量,例如:
var bool = true; while(bool){//Do something } var bool = true; while(bool === true){//Do something }?
但第一種是更快的方式,如果你碰巧使用數(shù)字,正如我們前面做的,你甚至可以做的:
var myNumber = 1; while(myNumber) {// Do something! }只要條件的計(jì)算結(jié)果為true時(shí),循環(huán)將繼續(xù)運(yùn)行。如果是false就會(huì)停下來。(當(dāng)你使用一個(gè)數(shù)字來作為條件時(shí),javascript能夠理解1代表true,0代表false)
正如我們提到的,for循環(huán)非常適合做你提前知道你要重復(fù)多少次循環(huán)的任務(wù)。另一方面,while循環(huán)是當(dāng)你不得不循環(huán),但你不知道有多少次循環(huán)的的時(shí)候。
有時(shí)你想確保你的循環(huán)運(yùn)行至少一次。在這種情況下,你需要修改while循環(huán)為do/while循環(huán)。
totalDamage = totalDamage + damageThisRound;這有一個(gè)快捷的寫法:就是使用+=運(yùn)算符。
17.如果你調(diào)用isNaN做一些事情,它會(huì)檢查它是不是個(gè)數(shù)字,如果是數(shù)字將返回false。
isNaN('berry'); // => true isNaN(NaN); // => true isNaN(undefined); // => true isNaN(20); // => false注意:如果你調(diào)用isNaN傳入的一個(gè)字符串,看起來像一個(gè)數(shù)字,比如“20”,javascript會(huì)嘗試將字符串自動(dòng)轉(zhuǎn)換為數(shù)字20,這將返回false(因?yàn)?0是一個(gè)數(shù)字)。
注意你不能這樣寫:
isNaN(unicorns);除非你已經(jīng)定義了一個(gè)變量叫unicorns; 然而你可以這樣做:
isNaN("unicorns"); // => true18.
Switch允許你預(yù)先設(shè)置多個(gè)選項(xiàng)(case),然后檢查表達(dá)式是否匹配。
如果匹配,就會(huì)執(zhí)行匹配的程序,如果沒有匹配的,就會(huì)執(zhí)行default選項(xiàng)。
19.?JavaScript有三個(gè)邏輯運(yùn)算符:
?
在你的提示中調(diào)用.toUpperCase()或.toLowerCase(),以確保獲得用戶的輸入是大寫或者小寫。
20.異構(gòu)數(shù)組,這意味著數(shù)組中可以有不同類型的元素
var mix = [42, true, "towel"];?
?不僅可以在數(shù)組中存儲(chǔ)不同的數(shù)據(jù)類型,甚至可以在數(shù)組中存放其他數(shù)組??梢酝ㄟ^嵌套來實(shí)現(xiàn)二維數(shù)組,像這樣:
var twoDimensional = [[1, 1], [1, 1]];可能要求第一行有三個(gè)元素,第二行為一個(gè)元素,第三行有兩個(gè)元素。Javascript是允許的,這就是所謂的交錯(cuò)數(shù)組。
var jagged = [[9,8,4],[3,2],[1]]; for (var i = 0;i<jagged.length;i++){console.log(jagged[i]); }?
21.可以把對(duì)象當(dāng)做是鍵值對(duì)的組合(如數(shù)組),只是他們的鍵不是0,1或2這些數(shù)字,它們可以是字符串和變量。
var phonebookEntry = {};phonebookEntry.name = 'tom'; phonebookEntry.number = '(555) 555-5555'; phonebookEntry.phone = function() {console.log('打電話給' + this.name + ' ,號(hào)碼是 ' + this.number + '...'); };phonebookEntry.phone();除了它的鍵是字符串和變量外,這個(gè)對(duì)象就像是一個(gè)數(shù)組。 對(duì)象的花括號(hào)之間是收集信息(鍵和值),像這樣的:
var myObject = {key: value,key: value,key: value };?
22.用兩種方法可以創(chuàng)建對(duì)象,一種是你剛剛做的,另一種是使用對(duì)象的構(gòu)造函數(shù)。
var myObj = {type: 'fancy',disposition: 'sunny' };var emptyObj = {};使用構(gòu)造函數(shù),語(yǔ)法如下
var myObj = new Object();//這告訴javascript我要?jiǎng)?chuàng)建一個(gè)新的事物是Object;你已經(jīng)通過兩種方式創(chuàng)建了對(duì)象,你可以添加鍵到你的對(duì)象。
myObj["name"] = "Charlie"; myObj.name = "Charlie";兩者都是正確的,第二個(gè)是簡(jiǎn)寫??纯催@是不是有點(diǎn)類似于數(shù)組呢?
使用[]或者.來添加添name和age屬性。
添加對(duì)象到數(shù)組,我們可以這樣:
var myObj = {type: 'fancy',disposition: 'sunny' }; myArray = [myObj]; var friends = {};friends.Tom = {name: "Tom",number: "(206) 555-5555",address: ['USA','NewYork'] }; friends.Jerry = {name: "Jerry",number: "(010) 555-5555",address: ['中國(guó)','北京'] };var list = function(obj) {for(var prop in obj) {console.log(prop);} };var search = function(name) {for(var prop in friends) {if(friends[prop].name === name) {return friends[prop];}} };list(friends); console.log(search("Jerry").number);?
現(xiàn)在我們來將你的一些朋友添加到friends對(duì)象中,每個(gè)朋友需要一個(gè)名字,電話號(hào)碼,等等。我們將使用一個(gè)新對(duì)象來保存每個(gè)朋友的信息!沒錯(cuò),我們是在對(duì)象中創(chuàng)建對(duì)象!
將一些空對(duì)象添加到你的friends對(duì)象中去,確保你添加的對(duì)象的名字是“Tom”和“Jerry”,我們將使用這兩個(gè)名字來做為你空對(duì)象的鍵。
var friends = {bill: {},steve: {} };或者使用中括號(hào)([]),或點(diǎn)(.),像這樣:
friends[bill] = {}; friends.steve = {};?23.數(shù)組和變量存儲(chǔ)數(shù)據(jù)是一樣的。不同的是,數(shù)組可以存儲(chǔ)更多的值,一個(gè)變量只能存儲(chǔ)一個(gè)。
要訪問數(shù)組,我們可以使用中括號(hào)符號(hào),并要記住數(shù)組的索引是從0開始的(例如,數(shù)組中的第一個(gè)值是在位置0)。
創(chuàng)建一個(gè)對(duì)象就像聲明一個(gè)變量,或定義一個(gè)函數(shù)一樣,我們可以使用var,緊隨其后的是對(duì)象的名稱和一個(gè)等號(hào); 然后每個(gè)對(duì)象:
?1. 以“{“開始; ?2. 里面有對(duì)象相關(guān)的信息; ?3. 以“}“結(jié)束。
每條信息在一個(gè)對(duì)象中被稱為一個(gè)屬性。當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),每個(gè)屬性都有一個(gè)名稱,后面存放其值。
舉例來說,如果我們要顯示Bob的對(duì)象,他是34歲,我們會(huì)輸入age:34。
age是屬性,而34是該屬性的值。當(dāng)我們有一個(gè)以上的屬性時(shí),它們之間用逗號(hào)隔開。最后一個(gè)屬性不需要用逗號(hào)來結(jié)束。
使用點(diǎn)符號(hào)來訪問屬性,所以我們應(yīng)該使用ObjectName.PropertyName(例如:bob.name);
除了點(diǎn)符號(hào),我們也可以使用中括號(hào)來訪問屬性。在本例中,我們使用ObjectName["PropertyName"]訪問所需的屬性。請(qǐng)注意,我們需要在屬性的名字上加上雙引號(hào)。
24.函數(shù)使用function關(guān)鍵字后跟:
- 一對(duì)圓括號(hào)()里面的可放置參數(shù)。
- 一對(duì)花括號(hào),來放置函數(shù)的代碼{}。
- 分號(hào);。
?
轉(zhuǎn)載于:https://www.cnblogs.com/Chary/p/No0000101.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的[No0000101]JavaScript-基础课程1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【bzoj1597】 土地购买
- 下一篇: gradle idea java ssm