匯總版目錄Tips:在JavaScript中,函數(shù)是第一等公民。
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為上千客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為都蘭企業(yè)提供專(zhuān)業(yè)的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè),都蘭網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
無(wú)序言,本文開(kāi)門(mén)見(jiàn)山,直接講解
Javascript
是一種由Netscape
的LiveScript
發(fā)展而來(lái)的原型化繼承的面向?qū)ο蟮膭?dòng)態(tài)類(lèi)型的區(qū)分大小寫(xiě)的客戶(hù)端腳本語(yǔ)言,主要目的是為了解決服務(wù)器端語(yǔ)言,比如Perl
,遺留的速度問(wèn)題,為客戶(hù)提供更流暢的瀏覽效果。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
使用方式:
HTML頁(yè)面中的任意位置加上標(biāo)簽即可。
常見(jiàn)使用方式有以下幾種:
標(biāo)簽內(nèi)寫(xiě)JS代碼。
。import
關(guān)鍵字引入到當(dāng)前作用域。例如:/static/js/index.js
文件中的內(nèi)容為:
let name = "xiaozhuangzzz";
function print() {console.log("Hello World!");
}
export {name,
print
}
中的內(nèi)容為:
執(zhí)行順序
1.類(lèi)似于HTML
與CSS
,按從上到下的順序執(zhí)行;
2.事件驅(qū)動(dòng)執(zhí)行;
HTML
,CSS
,JavaScript
三者之間的關(guān)系
1CSS
控制HTML
2.JavaScript
控制HTML
與CSS
3.為了方便開(kāi)發(fā)與維護(hù),盡量按照上述順序?qū)懘a。例如:不要在HTML中調(diào)用JavaScript
中的函數(shù)。
let
與const
用來(lái)聲明變量,作用范圍為當(dāng)前作用域。
let
用來(lái)定義變量;const
用來(lái)定義常量;例如:
let s = "zzz, x = 5;
let d = {name: "xiaozhuang",
age: 19,
}
const n = 100;
變量類(lèi)型
number
:數(shù)值變量,例如1
,2.5
string
:字符串,例如"zzz"
,'xiaozhuang'
,單引號(hào)與雙引號(hào)均可。字符串中的每個(gè)字符為只讀類(lèi)型。boolean
:布爾值,例如true
,false
object
:對(duì)象,類(lèi)似于C++中的指針,例如[1, 2, 3]
,{name: "yxc", age: 18}
,null
undefined
:未定義的變量類(lèi)似于Python,JavaScript中的變量類(lèi)型可以動(dòng)態(tài)變化。
運(yùn)算符
與C++、Python、Java類(lèi)似,不同點(diǎn):
**
表示乘方等于與不等于用===
和!==
輸入
input
、textarea
等標(biāo)簽獲取用戶(hù)的鍵盤(pán)輸入,通過(guò)click
、hover
等事件獲取用戶(hù)的鼠標(biāo)輸入。Ajax
與WebSocket
從服務(wù)器端獲取輸入let fs = require('fs');
let buf = '';
process.stdin.on('readable', function() {let chunk = process.stdin.read();
if (chunk) buf += chunk.toString();
});
process.stdin.on('end', function() {buf.split('\n').forEach(function(line) {let tokens = line.split(' ').map(function(x) {return parseInt(x); });
if (tokens.length != 2) return;
console.log(tokens.reduce(function(a, b) {return a + b; }));
});
});
輸出
console.log
,會(huì)將信息輸出到瀏覽器控制臺(tái)Ajax
與WebSocket
將結(jié)果返回到服務(wù)器格式化字符串
let name = 'xiaozhuang', age = 19;
let s = `My name is ${name}, I'm ${age} years old.`;
let s =
`
標(biāo)題段落
/div>`
let x = 1.234567;
let s = `${x.toFixed(2)}`;
練習(xí)
*
***
*****
***
*
JavaScript中的if-else
語(yǔ)句與C++
、Python
、Java
中類(lèi)似。
例如:
let score = 90;
if (score >= 85) {console.log("A");
} else if (score >= 70) {console.log("B");
} else if (score >= 60) {console.log("C");
} else {console.log("D");
}
JavaScript中的邏輯運(yùn)算符也與C++
、Java
中類(lèi)似:
&&
表示與||
表示或!
表示非練習(xí)
1.輸入一個(gè)年份,如果是閏年輸出yes,否則輸出no。
2.輸入三個(gè)數(shù),輸出三個(gè)數(shù)中的大值。
<習(xí)題解析下節(jié)更新>
第四節(jié)習(xí)題1:
function main() {run.addEventListener("click", function () {let year = input.value;
if(year % 400 === 0 || year % 100 !== 0 && year % 4 === 0){output.innerHTML = "yes";
} else {output.innerHTML = "no";
}
});
}
第四節(jié)習(xí)題2:
function main() {run.addEventListener("click", function () {let [a, b, c] = input.value.split(' ');
a = parseInt(a), b = parseInt(b), c = parseInt(c);
output.innerHTML = Math.max(a, b, c);
});
}
JavaScript
中的循環(huán)語(yǔ)句與C++
中類(lèi)似,也包含for
、while
、do while
循環(huán)。
for
循環(huán)
for (let i = 0; i< 10; i++) {console.log(i);
}
枚舉對(duì)象或數(shù)組時(shí)可以使用:
for-in
循環(huán),可以枚舉數(shù)組中的下標(biāo),以及對(duì)象中的key
for-of
循環(huán),可以枚舉數(shù)組中的值,以及對(duì)象中的value
while
循環(huán)let i = 0;
while (i< 10) {console.log(i);
i++;
}
do while
循環(huán)do while
語(yǔ)句與while
語(yǔ)句非常相似。唯一的區(qū)別是,do while
語(yǔ)句限制性循環(huán)體后檢查條件。不管條件的值如何,我們都要至少執(zhí)行一次循環(huán)。
let i = 0;
do {console.log(i);
i++;
} while (i< 10);
練習(xí)
英文名稱(chēng):Object
。
類(lèi)似于C++
中的map
,由key:value
對(duì)構(gòu)成。
value
可以是變量、數(shù)組、對(duì)象、函數(shù)等。this
用來(lái)引用該函數(shù)的“擁有者”。例如:
let person = {name: "xiaozhuang",
age: 19,
money: 0,
add_money: function (x) {this.money += x;
}
}
對(duì)象屬性與函數(shù)的調(diào)用方式:
person.name
、person.add_money()
person["name"]
、person["add_money"]()
函數(shù)是用對(duì)象來(lái)實(shí)現(xiàn)的。
函數(shù)也跟C++
中的函數(shù)類(lèi)似。
定義方式
function add(a, b) {return a + b;
}
let add = function (a, b) {return a + b;
}
let add = (a, b) =>{return a + b;
}
返回值
如果未定義返回值,則返回undefined
。
與C++
中的Class
類(lèi)似。但是不存在私有成員。
this
指向類(lèi)的實(shí)例。
定義
class Point {constructor(x, y) {// 構(gòu)造函數(shù)
this.x = x; // 成員變量
this.y = y;
this.init();
}
init() {this.sum = this.x + this.y; // 成員變量可以在任意的成員函數(shù)中定義
}
toString() {// 成員函數(shù)
return '(' + this.x + ', ' + this.y + ')';
}
}
let p = new Point(3, 4);
console.log(p.toString());
繼承
class ColorPoint extends Point {constructor(x, y, color) {super(x, y); // 這里的super表示父類(lèi)的構(gòu)造函數(shù)
this.color = color;
}
toString() {return this.color + ' ' + super.toString(); // 調(diào)用父類(lèi)的toString()
}
}
注意:
super
這個(gè)關(guān)鍵字,既可以當(dāng)作函數(shù)使用,也可以當(dāng)作對(duì)象使用。super
作為函數(shù)調(diào)用時(shí),代表父類(lèi)的構(gòu)造函數(shù),且只能用在子類(lèi)的構(gòu)造函數(shù)之中。super
作為對(duì)象時(shí),指向父類(lèi)的原型對(duì)象。super
之后,才可以使用this
關(guān)鍵字。C++
中的多態(tài)。靜態(tài)方法
在成員函數(shù)前添加static
關(guān)鍵字即可。靜態(tài)方法不會(huì)被類(lèi)的實(shí)例繼承,只能通過(guò)類(lèi)來(lái)調(diào)用。例如:
class Point {constructor(x, y) {this.x = x;
this.y = y;
}
toString() {return '(' + this.x + ', ' + this.y + ')';
}
static print_class_name() {console.log("Point");
}
}
let p = new Point(1, 2);
Point.print_class_name();
p.print_class_name(); // 會(huì)報(bào)錯(cuò)
靜態(tài)變量
在ES6中,只能通過(guò)class.propname
定義和訪問(wèn)。例如
class Point {constructor(x, y) {this.x = x;
this.y = y;
Point.cnt++;
}
toString() {return '(' + this.x + ', ' + this.y + ')';
}
}
Point.cnt = 0;
let p = new Point(1, 2);
let q = new Point(3, 4);
console.log(Point.cnt);
JavaScript的代碼一般通過(guò)事件觸發(fā)。
可以通過(guò)addEventListener
函數(shù)為元素綁定事件的觸發(fā)函數(shù)。
常見(jiàn)的觸發(fā)函數(shù)有:
鼠標(biāo):
click
:鼠標(biāo)左鍵點(diǎn)擊dblclick
:鼠標(biāo)左鍵雙擊contextmenu
:鼠標(biāo)右鍵點(diǎn)擊mousedown
:鼠標(biāo)按下,包括左鍵、滾輪、右鍵event.button
:0表示左鍵,1表示中鍵,2表示右鍵mouseup
:鼠標(biāo)彈起,包括左鍵、滾輪、右鍵event.button
:0表示左鍵,1表示中鍵,2表示右鍵鍵盤(pán):
keydown
:某個(gè)鍵是否被按住,事件會(huì)連續(xù)觸發(fā)event.code
:返回按的是哪個(gè)鍵event.altKey
、event.ctrlKey
、event.shiftKey
分別表示是否同時(shí)按下了alt
、ctrl
、shift
鍵。keyup
:某個(gè)按鍵是否被釋放event
常用屬性同上keypress
:緊跟在keydown事件后觸發(fā),只有按下字符鍵時(shí)觸發(fā)。適用于判定用戶(hù)輸入的字符。event
常用屬性同上keydown
、keyup
、keypress
的關(guān)系類(lèi)似于鼠標(biāo)的mousedown
、mouseup
、click
表單:
focus
:聚焦某個(gè)元素blur
:取消聚焦某個(gè)元素change
:某個(gè)元素的內(nèi)容發(fā)生了改變窗口:
需要作用到window
元素上。
resize
:當(dāng)窗口大小放生變化scroll
:滾動(dòng)指定的元素load
:當(dāng)元素被加載完成你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧