今天學(xué)了什么
1.JavaScript簡介
1.簡介
A.誕生的背景
1995年網(wǎng)景公司開發(fā)的
開發(fā)目的:受制于當(dāng)時的帶寬,做表單驗證
97年被提交給ECMA,98年獲取ISO認(rèn)證
B.功能
a.數(shù)據(jù)處理
b.用戶交互
c.服務(wù)器端開發(fā)
2.JavaScript組成

3.JavaScript語法
1.注釋
//單行注釋
/**/多行注釋
2.什么是標(biāo)示符
變量,函數(shù),屬性的名字,或者函數(shù)的參數(shù)。
標(biāo)示符的命名規(guī)則:
a.由字母,數(shù)字,下劃線(_)或美元符號($)組成
b.不能以數(shù)字開頭
c.不能使用關(guān)鍵字,保留字作為標(biāo)示符
3.1 變量
ECMAScript的變量是松散類型
松散類型:可以用來保存任何類型的數(shù)據(jù)
什么是變量? 從字面上看,變量是可變的量;
從編程角度講,JavaScript變量是存儲數(shù)據(jù)值的容器。
如何使用:聲明 賦值 取值
//var a;使用var關(guān)鍵字進(jìn)行聲明
//= 使用等于號進(jìn)取賦值
a.變量可以先聲明,再賦值
b.也可以聲明的同時賦值
4.數(shù)據(jù)類型的分類
4.1原始類型:
number,string,boolean,undefined,null
a.number
var a =10,b=20.1;
b.string
用單引號或雙引號包裹的叫string類型
var c= “hello world”;
var c = 'good';
c.boolean
只有兩個值true或false
d.undefined
var a;
一個變量之聲明未賦值就是undefined
e.null
1.null值表示一個空對象
2.如果定義的變量準(zhǔn)備在將來用來保存對象,那么最好將改變量初始化null而不是其他值
使用typeof操作符來識別基本類型
4.2 引用數(shù)據(jù)類型:
array,object,function
a.array
a1.聲明變量
var arr = [1,2,3,4]
a2.獲取數(shù)組的長度
arr.length
a3.讀取數(shù)組的值(數(shù)組的下標(biāo)從0開始)
arr[index]
a4.向數(shù)組的末尾添加值
arr[arr.length]=5;
b.object
b1.聲明對象
var chengchao = {
name:”chengchao”,
age:20
}
b2.讀取變量的屬性
console.log(chengchao.name);
c.function
定義:封裝特點功能的代碼塊
c1.聲明函數(shù)
function a(){
console.log(“hello world”)
}
c2.調(diào)用函數(shù)
a();
5.聲明提前
在正式執(zhí)行腳本之前,將所有var聲明的變量,提前預(yù)讀到(當(dāng)前作用域的)頂部,集中聲明創(chuàng)建。
然后再開始執(zhí)行程序。
***賦值留在本地。
eg:
console.log(a); //undefined
var a=10;
6.typeof instanceof
var a = 1;
console.log(typeof a) //number
var arr = [1,2,3];
console.log(arr instanceof Object) //true
7.全局變量和局部變量
全局變量:在函數(shù)外聲明的變量
局部變量:在函數(shù)內(nèi)部聲明的變量
8.數(shù)據(jù)類型的轉(zhuǎn)換
8.1自動轉(zhuǎn)換
不需要程序員干預(yù),js自動完成的類型轉(zhuǎn)換
算數(shù)計算中的自動轉(zhuǎn)換:
A.算數(shù)計算中,數(shù)據(jù)都默認(rèn)轉(zhuǎn)為數(shù)字,再計算,不能轉(zhuǎn)為數(shù)字則為NaN
Boolean類型:true-->1 false-->0
eg:
var a=1;
var b=true;
var c = "hello world";
console.log(a+b); //2
console.log(a-c); //NaN
B.特殊+運(yùn)算中,碰到字符串,+就變?yōu)樽址唇?br> 另一個不是字符串的數(shù)據(jù),被自動轉(zhuǎn)為字符串
比較運(yùn)算(>,<,>=,<=,==,!=)中的自動轉(zhuǎn)換:
默認(rèn)將所有類型轉(zhuǎn)為數(shù)字再比較
將兩個值做比較-->返回值:true、false
8.2強(qiáng)制轉(zhuǎn)換
8.2.1轉(zhuǎn)number
a.非字符串類型轉(zhuǎn)數(shù)字
Number(x)
eg:
var a ="20";
console.log(Number(a)) //只能識別這樣的字符串
b. 將字符串轉(zhuǎn)為數(shù)字:2個API
parseInt(str):
從第一個字符開始依次讀取每個數(shù)字,只要碰上第一個非數(shù)字字符 就停止,自動跳過開頭的空字符
var width="20px";
console.log(Number(width)) //NaN
console.log(parseInt(width)) //20
parseFloat(str):用法同parseInt
比較Number()和parseInt()
var b=true;
console.log(Number(b)) //1
console.log(parseInt(String(b))) //NaN
parseFloat(str):用法同parseInt
比較Number()和parseInt()
var b=true;
console.log(Number(b)) //1
console.log(parseInt(String(b))) //NaN
8.2.2轉(zhuǎn)字符串
x.toString();
x不是undefined或null時,才可用
String(x)
8.2.3轉(zhuǎn)boolean
Boolean: Boolean(x)
只有5個值轉(zhuǎn)為false:
"" NaN undefined null 0
其余都轉(zhuǎn)為true
9.運(yùn)算符和表達(dá)式
9.1算術(shù)運(yùn)算
+,-,*,/,%,++,--
9.2比較運(yùn)算
將兩個值做比較
返回值:true、false
,<,>=,<=,==,!=
關(guān)系運(yùn)算中:
a. 默認(rèn)將所有類型轉(zhuǎn)為數(shù)字再比較
特殊情況
A.NaN:NaN不等于,不大于,不小于任何值(包括自己)
NaN和任何數(shù)據(jù)做!=比較時,始終返回true
isNaN(n):本意是判斷一個值是否是NaN
10.3邏輯運(yùn)算:
將多個關(guān)系運(yùn)算綜合起來,得出最終結(jié)論,返回值:true、false
&& || !
10.4賦值運(yùn)算:
+= -= *= /= %=
10.5三目運(yùn)算
var a=(10>4)?10:4;
11.遞增
a++和++a;
1.單獨使用a都會加一
>eg:
>var a=10;
.a++
>console.log(a); //a
2.在表達(dá)式中使用
前加加,a自增后運(yùn)算
后加加,a先運(yùn)算后自增
var a=10;
var b;
b=a++;
console.log(b) //10;
12.控制語句
1.條件判斷
var age = 20;
if (age >= 18) { // 如果age >= 18為true,則執(zhí)行if語句塊
alert('成年人');
} else { // 否則執(zhí)行else語句塊
alert('未成年人');
}
2.多行條件判斷
Tip:最大的條件放前面
var age = 3;
if (age >= 18) {
alert('成年人');
} else if (age >= 6) {
alert('少年');
} else {
alert('小孩');
}
3.switch結(jié)構(gòu)
多個if...else連在一起使用的時候,可以轉(zhuǎn)為使用更方便的switch結(jié)構(gòu)。
var x = 1;
switch (x) {
case 1:
console.log('x 等于1');
break;
case 2:
console.log('x 等于2');
break;
default:
console.log('x 等于其他值');
}
13.循環(huán)語句
while(){}
eg:
var a=0;
while(a<=10){
//只要a<=10為true就一直循環(huán)
console.log(a);
a++;
}
for循環(huán)
eg:
for(var i=0;i<=10;i++){
console.log(i)
}
for...in...
var o = {
name: 'Jack',
age: 20,
city: 'Beijing'
};
for (var key in o) {
alert(key); // 'name', 'age', 'city'
}
13.1 break
達(dá)到條件,跳出循環(huán)
for(var i=0;i<10;i++){
if(i==5){
break;
}
console.log(i); //0,1,2,3,4
}
13.2continue
結(jié)束本次循環(huán),繼續(xù)開始下一次
for(var i=0;i<5;i++){
if(i==2){
continue;
}
console.log(i); //0,1,3,4
}