[No0000101]JavaScript-基礎課程1

JavaScript 是一種輕量級的編程語言,很容易學習,同時也是一種被廣泛用于客戶端Web開發的腳本語言。通過本課程學習,我們可以了解到JavaScript的基本語法知識,以及怎樣使用它去創建簡單的游戲和應用。

1.獲取字符的長度

"youName".length;

2.使用"+"加法、"-"減法、"*"?乘法和"/"除法,對兩個數字進行運算;

3."//"是注釋,注釋是一個文本行,JavaScript無法運行這行代碼。它只是用來讓人們閱讀的。

4.這是JavaScript(JS)編程語言。編程語言有很多語言,但JS有許多用途,很容易學習。

我們可以使用JavaScript來做什么?

  1. 使網站對用戶交互作出響應
  2. 構建應用程序和游戲(例如二十一點)
  3. 在互聯網上獲取信息(如在Twitter上找出熱門詞的主題)
  4. 組織和顯示數據(如電子表格自動化工作;數據可視化)
confirm('這是一個例子,使用JS在網站上創建一些交互。單擊確定繼續!');

5.輸入

prompt("你叫什么名字?");
prompt("你多大了?");

6.數據有各種類型,您已經使用了兩個。

  1. number: 數量,你可以做數學,number在您的代碼中,只是寫一些數字沒有引號:42190.12334
  2. string:是字符的序列,像字母a - z一樣,空格,甚至數字。這些都是字符串:"Ryan""4""你叫什么名字?"

還有一種類型是boolean,布爾值。它有兩個值truefalse。例如,比較兩個數字返回真或假的結果:23 > 10?是?true

var length = "我編碼如飛".length;
console.log(length);
length > 10

?

7.console.log()會將括號內的內容打印到控制臺;

8.到目前為止,我們已經學習了三種數據類型:

  1. strings?(例: "dogs go woof!")
  2. numbers?(例: 4,10)
  3. booleans?(例: false, 5 > 4)

比較運算符列表:

  1. >?大于
  2. <?小于
  3. <=?小于等于
  4. >=?大于等于
  5. ==?等于(等同)
  6. ===?等于(恒等)
  7. !==?不等于

注意: ?"=="?兩邊值類型不同的時候,會進行類型轉換,再比較。 ?"==="不做類型轉換,類型不同的一定不等。 ?例如:5 == "5"?結果為true,而5 === "5"?結果為false

console.log(15 > 4); // 15 > 4 判斷為true,所以打印結果是true
console.log("Xiao Hui".length<122);
console.log("Goody Donaldson".length<8);
console.log(8*2===16);

9.if語句是由if關鍵詞、一個條件和一對大括號{ }組成。如果條件的結果是true,花括號內的代碼將運行。

if( "youName".length >= 7 ) {console.log("你有一個很長的名字!");
}
if( "myName".length >= 7 ) {alert("你的名字很長!");
}else {alert("你的名字很短");
}

10.我們遇到一個有趣的符號稱為 "%" 模。放在兩個數字之間時,計算機將第一個數字除以第二個,然后返回余數。所以如果我們計算 23 % 10 ,我們用23除以10,結果為2,余數是3,所以23%10結果為3。

11.x是指從哪里開始截取,y是指到哪里結束。字符串中的每個字符編號從0開始.

"some word".substring(x, y);

12.通過一個具體的,區分大小寫的名稱定義一個變量。一旦您用特定名稱創建(或聲明)一個變量,然后你可以通過這個變量名來獲取這個值。

var varName = data;

13.一個函數接受輸入,并做一些處理后,產生輸出。

// 函數看起來就像是這樣的:
var divideByThree = function (number) {var val = number / 3;console.log(val);
};
// 在第12行,我們調用函數的名字
//在這里,它被稱為“dividebythree”
// 我們告訴計算機輸入數量(即6)
// 然后電腦運行函數內的代碼!
divideByThree(6);

1、?首先,我們使用var聲明一個函數,然后給它起一個名字divideByThree。名字應以小寫字母開頭,該約定是使用駝峰命名法(每個單詞首字母大寫,第一單詞除外)。

2、 然后使用?function關鍵字來告訴計算機你正在創建一個函數。

3、 括號中的代碼被稱為一個參數。這是一個占位符,當我們調用的時候會給它一個特定的值。

4、 然后將你要重復的代碼寫在“{ }”之間,每段代碼須用“;”來結束。

可以調用函數來運行這段代碼:divideByThree(6);

使用函數,我們只需要輸入函數名來調用函數,并將參數傳入到后面的括號中。電腦將運行可重復使用的代碼,并將具體的參數值替換到代碼中。

14.return關鍵字告訴程序什么時候函數要返回?返回值。所以函數運行到return關鍵字時,該功能會立即停止運行并返回值。

// 好的函數寫法
var calculate = function (number) {var val = number * 10;//就算沒有這樣的間距或換行,計算機也是可以理解這些代碼的,但使用間距和換行可以使編碼更加容易查看,并且這是最好的做法。console.log(val);//代碼塊的每一行和函數的末尾都要加上分號,分號的作用就像是一段中的一句,它有助于計算機知道每句代碼在什么時候結束。
};
// 寫的很糟的函數
var greeting = function(name){console.log(name);}

在編程D.R.Y.原則是非常重要的。不要重復!

作用域可以是全局或局部。

函數外部定義的變量一旦被聲明就可以在任何地方訪問,它們被稱為全局變量或者說它們的作用域是全局的。

到目前為止我們看到的函數只有一個參數。但函數寫多個參數通常是有用的。

var areaBox = function(length, width) {return length * width;
};

函數內部定義的變量是局部變量。他們無法在函數外部訪問。

var關鍵字會在當前作用域創建一個新的變量。這意味著,如果變量被聲明在函數之外,該變量就具有全局的作用域。如果變量被聲明在函數中,該變量就具有局部的作用域。

var my_number = 7; //這是全局變量
var timesTwo = function(number) {my_number = number * 2;console.log("內部函數中 my_number 的值是: ");console.log(my_number);
}; 
timesTwo(7);
console.log("外部 my_number 值是: ")
console.log(my_number);

在第4行,我們沒有使用var關鍵字,所以我們在函數外用console.log打印出my_number的值將會是14。

15.

  1. 讓i遞增1的更有效的方法是使用?i++
  2. 讓i遞減1為?i--
  3. 我們可以使用?i+=x來編寫你希望遞增的任意值,例如:i+=3,他與i=i+3是相同的;
  4. 我們也可以使用i-=x來編寫你希望遞減的任意值;
  5. 當你編寫一個循環時,要非常小心,如果你不能正常結束這個循環,這會造成所謂的死循環,他會讓你的瀏覽器崩潰掉。
// for 循環例子:
for (var counter = 1; counter < 6; counter++) {console.log(counter);
}

?16.數組:

  1. 數據存儲列表 ;
  2. 可以同時存儲不同數據類型的數據;
  3. 數組是有序的,所以每一個數據的位置是固定的。
var names = ["Mao","Gandhi","Mandela"];
var sizes = [4, 6, 3, 2, 1, 9];
var mixed = [34, "candy", "blue", 11];
var arrayName = [data, data, data];

任何時候當你看到有“[]”的數據,它就是一個數組。當你調用數組的?.length時,將返回數組元素的數量。

每個數據的位置是從0開始計算的,而不是1;數組的第一個元素:junkData[0]; 數組中的第三個元素: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") {// 如果找到了,就添加到數組中// 長度和myName長度一樣for(var j = i; j < (myName.length + i); j++) {hits.push(text[j]);}}
}
if (hits.length === 0) {console.log("沒有發現你的名字!");
} else {console.log(hits);
}

?由于text可能會比較長,你可以使用反斜杠“\”來結束,然后在下一行繼續寫;

?數組有一個push()方法,它會將括號中的內容添加到數組末尾。

newArray = [];
newArray.push('hello');
newArray[0];   // 等于 'hello'
var coinFace = Math.floor(Math.random() * 2);
while(coinFace === 0){console.log("正面! 繼續...");var coinFace = Math.floor(Math.random() * 2);
}
console.log("反面! 停止.");

?

?16.你可能已經注意到,當我們給一個變量賦值boolean類型值為true時,我們不需要用 === 來檢查這個變量,例如:

var bool = true;
while(bool){//Do something
}
var bool = true;
while(bool === true){//Do something
}

?

但第一種是更快的方式,如果你碰巧使用數字,正如我們前面做的,你甚至可以做的:

var myNumber = 1;
while(myNumber) {// Do something!
}

只要條件的計算結果為true時,循環將繼續運行。如果是false就會停下來。(當你使用一個數字來作為條件時,javascript能夠理解1代表true,0代表false)

正如我們提到的,for循環非常適合做你提前知道你要重復多少次循環的任務。另一方面,while循環是當你不得不循環,但你不知道有多少次循環的的時候。

有時你想確保你的循環運行至少一次。在這種情況下,你需要修改while循環為do/while循環。

  1. youHit值為Math.floor(Math.random() * 2),這是給youHit設置一個隨機數0或者1;
  2. damageThisRound值為Math.floor(Math.random()*5 + 1),這將生成一個1到5間的隨機數。

totalDamage = totalDamage + damageThisRound;這有一個快捷的寫法:就是使用+=運算符。

17.如果你調用isNaN做一些事情,它會檢查它是不是個數字,如果是數字將返回false

isNaN('berry'); // => true
isNaN(NaN); // => true
isNaN(undefined); // => true
isNaN(20);  // => false

注意:如果你調用isNaN傳入的一個字符串,看起來像一個數字,比如“20”,javascript會嘗試將字符串自動轉換為數字20,這將返回false(因為20是一個數字)。

注意你不能這樣寫:

isNaN(unicorns);

除非你已經定義了一個變量叫unicorns; 然而你可以這樣做:

isNaN("unicorns"); // => true

18.

Switch允許你預先設置多個選項(case),然后檢查表達式是否匹配。

如果匹配,就會執行匹配的程序,如果沒有匹配的,就會執行default選項。

19.?JavaScript有三個邏輯運算符:

  1. 與(&&);
  2. 或(| |);
  3. 取反(!)。
var answer = prompt("用戶問題").toUpperCase();

?

在你的提示中調用.toUpperCase().toLowerCase(),以確保獲得用戶的輸入是大寫或者小寫。

20.異構數組,這意味著數組中可以有不同類型的元素

var mix = [42, true, "towel"];

?

?不僅可以在數組中存儲不同的數據類型,甚至可以在數組中存放其他數組。可以通過嵌套來實現二維數組,像這樣:

var twoDimensional = [[1, 1], [1, 1]];

可能要求第一行有三個元素,第二行為一個元素,第三行有兩個元素。Javascript是允許的,這就是所謂的交錯數組。

var jagged = [[9,8,4],[3,2],[1]]; 
for (var i = 0;i<jagged.length;i++){console.log(jagged[i]); 
}

?

21.可以把對象當做是鍵值對的組合(如數組),只是他們的鍵不是0,1或2這些數字,它們可以是字符串和變量。

var phonebookEntry = {};phonebookEntry.name = 'tom';
phonebookEntry.number = '(555) 555-5555';
phonebookEntry.phone = function() {console.log('打電話給' + this.name + ' ,號碼是 ' + this.number + '...');
};phonebookEntry.phone();

除了它的鍵是字符串和變量外,這個對象就像是一個數組。 對象的花括號之間是收集信息(鍵和值),像這樣的:

var myObject = {key: value,key: value,key: value
};

?

22.用兩種方法可以創建對象,一種是你剛剛做的,另一種是使用對象的構造函數。

var myObj = {type: 'fancy',disposition: 'sunny'
};var emptyObj = {};

使用構造函數,語法如下

var myObj = new Object();//這告訴javascript我要創建一個新的事物是Object;

你已經通過兩種方式創建了對象,你可以添加鍵到你的對象。

myObj["name"] = "Charlie";
myObj.name = "Charlie";

兩者都是正確的,第二個是簡寫。看看這是不是有點類似于數組呢?

使用[]或者.來添加添nameage屬性。

添加對象到數組,我們可以這樣:

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: ['中國','北京']
};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);

?

現在我們來將你的一些朋友添加到friends對象中,每個朋友需要一個名字,電話號碼,等等。我們將使用一個新對象來保存每個朋友的信息!沒錯,我們是在對象中創建對象!

將一些空對象添加到你的friends對象中去,確保你添加的對象的名字是“Tom”和“Jerry”,我們將使用這兩個名字來做為你空對象的鍵。

var friends = {bill: {},steve: {}
};

或者使用中括號([]),或點(.),像這樣:

friends[bill] = {};
friends.steve = {};

?23.數組和變量存儲數據是一樣的。不同的是,數組可以存儲更多的值,一個變量只能存儲一個。

要訪問數組,我們可以使用中括號符號,并要記住數組的索引是從0開始的(例如,數組中的第一個值是在位置0)。

創建一個對象就像聲明一個變量,或定義一個函數一樣,我們可以使用var,緊隨其后的是對象的名稱和一個等號; 然后每個對象:

?1. 以“{“開始; ?2. 里面有對象相關的信息; ?3. 以“}“結束。

每條信息在一個對象中被稱為一個屬性。當創建一個對象時,每個屬性都有一個名稱,后面存放其值。

舉例來說,如果我們要顯示Bob的對象,他是34歲,我們會輸入age:34

age是屬性,而34是該屬性的值。當我們有一個以上的屬性時,它們之間用逗號隔開。最后一個屬性不需要用逗號來結束。

使用點符號來訪問屬性,所以我們應該使用ObjectName.PropertyName(例如:bob.name);

除了點符號,我們也可以使用中括號來訪問屬性。在本例中,我們使用ObjectName["PropertyName"]訪問所需的屬性。請注意,我們需要在屬性的名字上加上雙引號。

24.函數使用function關鍵字后跟:

  • 一對圓括號()里面的可放置參數。
  • 一對花括號,來放置函數的代碼{}
  • 分號;

?

轉載于:https://www.cnblogs.com/Chary/p/No0000101.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455194.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455194.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455194.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

研究人員發現Office Word 0Day攻擊 這個漏洞繞過了word宏安全設置 綠盟科技、McAfee及FireEye發出警告...

這次的0Day漏洞確實很厲害&#xff0c;以往攻擊者誘使用戶點擊Word文檔&#xff0c;由于其中包含了惡意腳本&#xff0c;大多數需要用戶啟用了宏。但這次的漏洞不是&#xff0c;受害者無需啟用宏&#xff0c;也會中招&#xff0c;而且漏洞覆蓋Windows所有版本&#xff08;包括W…

秀米svg點擊顯示另一張圖_SVG的雷,你踩過了沒?

原標題&#xff1a;SVG的雷&#xff0c;你踩過了沒&#xff1f;隨著SVG互動布局的出現和在H5的應用越來越多&#xff0c;不少小伙伴們會想在秀米里上傳自己制作的SVG圖形。秀米的首頁頂部教程收錄了一篇關于SVG圖形的講解&#xff1a;「秀米的SVG圖片」&#xff0c;里面主要介紹…

關于C10K問題詳解-突破單機性能是高性能網絡編程

本文轉自:https://www.jianshu.com/p/ba7fa25d3590 C10K問題由來 隨著互聯網的普及&#xff0c;應用的用戶群體幾何倍增長&#xff0c;此時服務器性能問題就出現。最初的服務器是基于進程/線程模型。新到來一個TCP連接&#xff0c;就需要分配一個進程。假如有C10K&#xff0c;…

數據中心傳輸需求成以太網市場巨大推動力

近日&#xff0c;市場研究機構Infonetics作出評估稱&#xff0c;數據中心以太網市場將迎來全面發展的勢頭&#xff0c;其驅動力則在于當前數據中心以太網絡交換接口由10Gbps產品向25Gbps乃至50Gbps標準的大規模升級。 根據對2014年第三季度的市場銷售情況研究&#xff0c;該公司…

Gina DLL

Windows的開機密碼認證模塊一般是由Gina DLL完成的。在NT/2000中交互式的登陸支持是由WinLogon調用GINA DLL實現的&#xff0c;GINA DLL提供了一個交互式的界面為用戶登陸提供認證請求。1.Gina原理WinLogon會和GINA DLL進行交互&#xff0c;缺省是MSGINA.DLL(在System32目錄下)…

ultilize什么意思_ultilize是什么意思

1. We also ultilize the supports of NSFC for other valuable researches.我們還利用基金支持&#xff0c;做了其他一些有價值的科研工作。2. Recover the second segment with all due haste, ultilize any means necessary.盡快取回第二部分&#xff0c;使用任何必要的手段…

HTML,CSS的class與id命名規則

個人博客點這里 最重要的部分先說(命名書寫格式) 常見的格式有&#xff1a;連接符&#xff08;search-btn&#xff09;、下劃線、全小&#xff08;searchbox&#xff09;、小駝峰&#xff08;searchBox&#xff09;。 現在用得多廣泛的還是第一種使用連接符&#xff0c;易讀…

主打“云安全” 迅雷系帝恩思登陸新三板

ZD至頂網安全頻道 06月14日 綜合消息&#xff1a; 6月14日上午&#xff0c;帝恩思(837018)敲響了登陸新三板的鐘聲。作為帝恩思的重要股東&#xff0c;迅雷&#xff08;NASDAQ:XNET&#xff09;CEO鄒勝龍與帝恩斯董事長王宇杰、總經理許淵培等人一同參加了這一儀式。 帝恩斯是一…

UESTC 1636 夢后樓臺高鎖,酒醒簾幕低垂

題意&#xff1a;求一條路徑&#xff0c;使得這條邊連接1到n&#xff0c;求邊權值的最大值與最小值的差 題解&#xff1a;最小生成樹&#xff0c;對邊權排序&#xff0c;可以枚舉邊的最大和最小的值&#xff0c;判斷能否使得1和n連通 #include <bits/stdc.h> #define ll …

wav文件格式分析詳解

wav文件格式分析詳解 作者&#xff1a;曹京日期&#xff1a;2006年7月17日 一、綜述 WAVE文件作為多媒體中使用的聲波文件格式之一&#xff0c;它是以RIFF格式為標準的。RIFF是英文Resource Interchange File Format的縮寫&#xff0c;每個WAVE文件的頭四個字節便是“RIFF…

pg數據庫開啟遠程連接_Postgresql開啟遠程訪問的步驟全紀錄

前言安裝PostgreSQL數據庫之后&#xff0c;默認是只接受本地訪問連接。如果想在其他主機上訪問PostgreSQL數據庫服務器&#xff0c;就需要進行相應的配置。下面話不多說了&#xff0c;來一起看看詳細的介紹吧。步驟如下&#xff1a;要在Postgresql中允許遠程訪問,需要設置如下2…

Vue.js前后端分離2

個人博客點這里 內容回顧 - 過濾器 - 局部的過濾器 // 只能在當前組件內部使用 filters:function(val,a,b){// 執行過濾處理邏輯,(添油加醋的內容)return xxx; }- 全局的過濾器 // 聲明創建 在任何組件中都能使用 Vue.filter("myTime",function() {// 添油加醋的…

WORD列表縮進的文本起始點

Figure 1 Figure 2 Figure 3 編號位置以刻度尺為起點0.74厘米&#xff08;2個字符間距&#xff09;&#xff0c;文本縮進以刻度尺為起點2.96厘米&#xff08;8個字符間距&#xff09; 以上兩者相減得到的值正好特殊格式懸掛縮進的值2.22厘米 Figure 4 上圖看到&#xff0c;文本…

無人車火了 百度是如何做到的?

ZD至頂網服務器頻道 03月02日 新聞消息&#xff08;文/于澤&#xff09;&#xff1a;百度無人車可謂狠狠的吸足了大眾的眼球。一個問題逐漸出現在我們心中&#xff0c;為什么百度這樣的互聯網企業會推出無人車&#xff0c;似乎搜索引擎和無人車之間的關聯度并不是很高。 謎題的…

測繪技術設計規定最新版_測繪技術設計規定

《》是中國測繪出版社出版圖書&#xff0c;下面小編給大家介紹關于的相關資料&#xff0c;希望對您有所幫助。《》內容國家測繪地理信息局法規與行業管理司編著的《(2014)》是一本關于測繪資質管理規定和測繪資質分級標準的書。具體內容包括&#xff1a;大地測量專業標準、測繪…

各類音頻格式解析

CD格式&#xff1a;天籟之音 當今世界上音質最好的音頻格式是什么&#xff1f;當然是CD了。因此要講音頻格式&#xff0c;CD自然是打頭陣的先鋒。在大多數播放軟件的“打開文件類型”中&#xff0c;都可以看到&#xff0a;.cda格式&#xff0c;這就是CD音軌了。標準CD格式也就是…

Error: Java heap space

在chd中 的hive中執行 (select count (*)) 或者mr程序都報Error: Java heap space 4、io.sort.mb 的作用 排序所使用的內存數量。 默認值&#xff1a;100M&#xff0c;需要與mapred.child.java.opts相配 默認&#xff1a;-Xmx200m。 不能超過mapred.child.java.opt設置&…

Golang語言基礎課件

go學習pdf課件,大家可以收藏頁面以免文件丟失 原文鏈接:http://victorfengming.gitee.io/course/go/

NIO客戶端主要創建過程

NIO客戶端主要創建過程:步驟一&#xff1a;打開SocketChannel&#xff0c;綁定客戶端本地地址&#xff08;可選&#xff0c;默認系統會隨機分配一個可用的本地地址&#xff09;&#xff0c;示例代碼如下&#xff1a; SocketChannel clientChannel SocketChannel.open(); 步驟…

rank 開窗函數_over 開窗函數的的理解

over的功能&#xff1a;一、with Ta as(select 1 as Fa, a as Fbunion allselect 2 as Fa, b as Fbunion allselect 3 as Fa, c as Fbunion allselect 4 as Fa, d as Fbunion allselect 5 as Fa, e as Fb)select FB ,1.*Fa/(select sum(Fa) from Ta)from Tawith Ta as(select 1…