JavaScript:簡(jiǎn)稱:js
js(原名LiveScript)分為三部分
-ECMAScript 標(biāo)準(zhǔn)----js的基本語(yǔ)法
-DOM-----Document Object Model 文檔對(duì)象模型
-BOM-----Browser Object Model 瀏覽器對(duì)象模型
JavasScript是什么请敦?
- 是一門腳本語(yǔ)言
- 是一門解釋性語(yǔ)言
- 是一門動(dòng)態(tài)類型的語(yǔ)言
- 是一門基于對(duì)象的語(yǔ)言
拓展:
編譯語(yǔ)言:需要把代碼翻譯成計(jì)算機(jī)所認(rèn)知的二進(jìn)制的語(yǔ)言才能夠執(zhí)行永乌,
腳本語(yǔ)言:不需要編譯,直接執(zhí)行
常見的腳本語(yǔ)言:t - sql,cmd
js的作用岩睁?
解決用戶和瀏覽器之間的交互問(wèn)題
頁(yè)面代碼包含:
html:是標(biāo)記語(yǔ)言,展示數(shù)據(jù)
css:美化頁(yè)面
js:用戶與瀏覽器交互
js代碼可以分為三個(gè)地方書寫:
- 在html的文件中揣云,script的標(biāo)簽中寫js代碼
- js的代碼可以在html的標(biāo)簽中書寫
- 在js文件中可以寫js代碼捕儒,但是需要在html的頁(yè)面中引入ScriptDear標(biāo)簽中的scr="js路徑"
js代碼的注意問(wèn)題:
1.在一對(duì)script的標(biāo)簽中有錯(cuò)誤的js代碼,那么該錯(cuò)誤的代碼后面的js代碼不會(huì)執(zhí)行
2.如果第一對(duì)的script標(biāo)簽中有錯(cuò)誤,不會(huì)影響后面的script標(biāo)簽中的js代碼執(zhí)行
3.script的標(biāo)簽中可以寫什么內(nèi)容type="text/javascript"是標(biāo)準(zhǔn)寫法或者寫language="JavaScript"都可以
* 但是,目前在我們的html頁(yè)面中,type和language都可以省略,原因:html是遵循h(huán)5的標(biāo)準(zhǔn)
4.有可能會(huì)出現(xiàn)這種情況:script標(biāo)簽中可能同時(shí)出現(xiàn)type和language的寫法.
如:
<script type="text/javascript" language="JavaScript">
</script>
5.script標(biāo)簽在頁(yè)面中可以出現(xiàn)多對(duì)
6.script標(biāo)簽一般是放在body的標(biāo)簽的最后的,有的時(shí)候會(huì)在head標(biāo)簽中
7.如果script標(biāo)簽是引入外部js文件的作用,那么這對(duì)標(biāo)簽中不要寫任何的js代碼,如果要寫,重新寫一對(duì)script標(biāo)簽,里面寫代碼
變量
操作的數(shù)據(jù)都是在內(nèi)存中操作
- js中存儲(chǔ)數(shù)據(jù)使用變量的方式(名字,值--->數(shù)據(jù))
- js中聲明變量都用var---->存儲(chǔ)數(shù)據(jù),數(shù)據(jù)應(yīng)該有對(duì)應(yīng)的數(shù)據(jù)類型
- js中的字符串類型的值都用雙引號(hào)或者單引號(hào)
- 變量---作用,存儲(chǔ)數(shù)據(jù)的或者是操作數(shù)據(jù)
- 變量聲明(有var 有變量名字,沒(méi)有值),var 變量名字
- 變量初始化(有var 有變量名字,有值)
- 變量聲明的方式:
//變量的初始化(變量聲明的同時(shí)并且賦值了)
// = 的意義:賦值的含義
//存儲(chǔ)一個(gè)數(shù)字10
var number = 10;
//存儲(chǔ)一個(gè)5
var number2 = 5;
//存儲(chǔ)一個(gè)人的名字
var name = "小黑";
//存儲(chǔ)真(true)
var flag = true;
//存儲(chǔ)一個(gè)null--->相當(dāng)于是空
var nll = null;
//存儲(chǔ)一個(gè)對(duì)象
var obj = new Object();
- 變量作用:用來(lái)操作數(shù)據(jù)的(可以存儲(chǔ),可以讀取)
- 變量的聲明:沒(méi)有賦值
- var 變量名;
- 變量的初始化:有賦值
- var 變量名=值;
- 注意的基本的代碼的規(guī)范
- js中聲明變量都用var
- js中的每一行代碼結(jié)束都應(yīng)該有分號(hào);(寫代碼有分號(hào)的習(xí)慣)
- js中的大小寫是區(qū)分的: var N=10; n
- js中的字符串可以使用單引號(hào),也可以使用雙引號(hào),目前我們暫時(shí)使用雙引號(hào)
變量名的注意問(wèn)題---變量名的命名規(guī)范,要遵循駝峰命名法
- 1.變量的名字要有意義,
- 2.變量名有一定的規(guī)范:一般以字母,符號(hào),字母,數(shù)字
- 3.變量名一般都是小寫的
- 4.變量名如果是多個(gè)單詞,第一個(gè)單詞的首字母是小寫的,后面的所有的單詞的首字母都是大寫的,這種命名方式稱為:駝峰命名法
- 5.不能使用關(guān)鍵字(系統(tǒng)自帶的一些單詞,不能使用)
- 6.不會(huì)單詞用拼音,拼音也要遵循駝峰命名法
聲明變量并初始化---變量的初始化----聲明變量賦值
注意;變量的名字是不能重名
變量的交換例子
1.使用第三方的變量進(jìn)行交換
// var num1=10;
// var num2=20;
// //把num1這個(gè)變量的值取出來(lái)放在temp變量中
// var temp=num1;
// //把num2這個(gè)變量的值取出來(lái)放在num1變量中
// num1=num2;
// //把temp變量的值取出來(lái)放在num2變量中
// num2=temp;
// console.log(num1);//20
// console.log(num2);//10
2.第二種方式交換:一般適用于數(shù)字的交換
// var num1 = 10;
// var num2 = 20;
// //把num1的變量中的值和num2變量中的值,取出來(lái)相加,重新賦值給num1這個(gè)變量
// num1 = num1 + num2;//30
// //num1變量的值和num2變量的值取出來(lái),相減的結(jié)果重新賦值給num2
// num2 = num1 - num2;//10
// //num1變量的值和num2變量的值取出來(lái),相減的結(jié)果重新賦值給num1
// num1 = num1 - num2;//20
// console.log(num1, num2);
注釋
/*
*
* 注釋:是解釋代碼的含義,給其他的程序員看的
* 注釋的方式:
* 1.單行注釋 //
* 2.多行注釋 /★★/
*
*
*
* */
//單行注釋:一般用在一行代碼的上面
/*多行注釋:一般是用在函數(shù)或者是一段代碼的上面*/
//代碼中如果沒(méi)有注釋,不規(guī)范,天天會(huì)被罵醒
//注釋后的代碼不執(zhí)行了
數(shù)據(jù)類型
js中的原始數(shù)據(jù)類型:number,string,boolean,null,undefined,object
/*
* number:數(shù)字類型(整數(shù)和小數(shù))
* string:字符串類型(的值一般都是用單引號(hào)或者是雙引號(hào)括起來(lái)) "34"
* boolean:布爾類型(值只有兩個(gè),true(真1),false(假0))
* null:空類型,值只有一個(gè):null,一個(gè)對(duì)象指向?yàn)榭樟?此時(shí)可以賦值為null
* undefined:未定義,值只有一個(gè):undefined
* 什么情況下的結(jié)果是undefined
* 變量聲明了,沒(méi)有賦值,結(jié)果是undefined
* 函數(shù)沒(méi)有明確返回值,如果接收了,結(jié)果也是undefined
* 如果一個(gè)變量的結(jié)果是undefined和一個(gè)數(shù)字進(jìn)行計(jì)算,結(jié)果:NaN不是一個(gè)數(shù)字,也沒(méi)有意義
* object:對(duì)象---->
*
* */
//如何獲取這個(gè)變量的數(shù)據(jù)類型是什么? 使用typeof 來(lái)獲取
//typeof 的使用的語(yǔ)法
/*
* 都可以獲取這個(gè)變量的數(shù)據(jù)類型是什么!
* typeof 變量名
* typeof(變量名)
*
*
*
* */
//是使用typeof 獲取變量的類型
console.log(typeof num);//number
console.log(typeof str);//string
console.log(typeof flag);//boolean
console.log(String(nll));//是null
console.log(typeof nll);//不是null
console.log(typeof undef);//undefined
console.log(typeof obj);//object
console.log(typeof(num));
數(shù)字類型
* 數(shù)字類型:整數(shù)和小數(shù)
*
* num=20;整數(shù)
* num=98.76;小數(shù)(其他的語(yǔ)言中,浮點(diǎn)型---單精度,雙精度浮點(diǎn))
* 所有的數(shù)字都是屬于number類型
* 其他的語(yǔ)言:
* 整數(shù)類型:int
* 單精度浮點(diǎn)型:float
* 雙精度浮點(diǎn)型:double
* js中可以表示哪些進(jìn)制
* var num=10;//十進(jìn)制
* var num2=012;//八進(jìn)制
* var num3=0x123;//十六進(jìn)制
//數(shù)字類型有范圍: 最小值和最大值
// console.log(Number.MAX_VALUE);//數(shù)字的最大值
// console.log(Number.MIN_VALUE);//數(shù)字的最小值
//不要用小數(shù)去驗(yàn)證小數(shù).
// var x=0.1;
// var y=0.2;
// var sum=x+y;
// console.log(sum==0.3);
//不要用NaN驗(yàn)證是不是NaN
//如何驗(yàn)證這個(gè)結(jié)果是不是NaN,應(yīng)該使用isNaN()
//var num;//-----變量聲明了,沒(méi)有賦值,結(jié)果是:undefined
//是不是不是一個(gè)數(shù)字----->不是一個(gè)數(shù)字嗎邓夕? NaN--->不是一個(gè)數(shù)字
//console.log(isNaN(10));
//判斷結(jié)果不是一個(gè)數(shù)字可以使用isNaN(變量名)
//var str="您好";
// var num;
// var sum=num+10;//NaN
// console.log(sum);
// console.log(isNaN(sum));//不是數(shù)字為true,是數(shù)字結(jié)果為false
//總結(jié):
/*
*
* 數(shù)字類型:number類型
* 無(wú)論是整數(shù)還是小數(shù)都是數(shù)字類型
* 不要用小數(shù)驗(yàn)證小數(shù)
* 不要使用NaN判斷是不是NaN刘莹,應(yīng)該使用isNaN(值或者是變量)
* 想要表示十進(jìn)制:就是正常的數(shù)字
* 想要表示八進(jìn)制:以0開頭
* 想要表示十六進(jìn)制:0x開頭
*
*
*
* */
字符串類型
//var str="10";//字符串
//var str2='20';//字符串
//字符串可以使用單引號(hào),也可以使用雙引號(hào)
//字符串的長(zhǎng)度如何獲取? 變量名.length
// var str="what are you no sha lei";
// //字符串的個(gè)數(shù)有多少個(gè)?這個(gè)字符串的長(zhǎng)度是多少
// console.log(str.length);
//
// var str1="fdshfjworwoijpfskj;akjfpojfiwnmoiwajdoiwajiwaewowj";
// console.log(str1.length);
//html中的轉(zhuǎn)義符: < < > > 空格:
//js中的字符串里也有轉(zhuǎn)義符
//tab鍵----水平制表符
// console.log("哈哈\\嘎嘎");
// console.log("哈哈\t嘎嘎");
// console.log("哈哈\"嘎嘎");
//
//
// console.log('哈哈\'嘎嘎');
//字符串的拼接: 使用+可以把多個(gè)字符串放在一起形成一個(gè)字符串
//只要有一個(gè)是字符串,其他的是數(shù)字,那么結(jié)果也是拼接,不是相加
//如果有一個(gè)是字符串,另一個(gè)不是字符串,使用- 號(hào),此時(shí)會(huì)發(fā)生計(jì)算
// var str1="您好";
// var str2="我好";
// console.log(str1+str2);
//console.log("哈哈"+"嘎嘎"+"嘿嘿");
// var str1="10";
// var str2="20";
// console.log(str1+str2);
// var str1="10";
// var str2=20;
// console.log(str1+str2);
// var str1 = "10";
// var str2 = 5;
// //瀏覽器幫助我們自動(dòng)的把字符串類型轉(zhuǎn)成了數(shù)字類型,這種方式叫:隱式轉(zhuǎn)換
// console.log(str1-str2);
// var str1="10";
// var str2=5;
// console.log(str1*str2);
布爾類型
//布爾類型:的值有兩個(gè),一個(gè)是true(真),一個(gè)是false(假)
類型轉(zhuǎn)換
//其他類型轉(zhuǎn)數(shù)字類型:三種方式:
//1.parseInt();//轉(zhuǎn)整數(shù)
// console.log(parseInt("10"));//10
// console.log(parseInt("10afrswfdsf"));//10
// console.log(parseInt("g10"));//NaN
// console.log(parseInt("1fds0"));//1
// console.log(parseInt("10.98"));//10
// console.log(parseInt("10.98fdsfd"));//10
//2.parseFloat()//轉(zhuǎn)小數(shù)
// console.log(parseFloat("10"));//10
// console.log(parseFloat("10afrswfdsf"));//10
// console.log(parseFloat("g10"));//NaN
// console.log(parseFloat("1fds0"));//1
// console.log(parseFloat("10.98"));//10.98
// console.log(parseFloat("10.98fdsfd"));//10.98
//3.Number();//轉(zhuǎn)數(shù)字
// console.log(Number("10"));//10
// console.log(Number("10afrswfdsf"));//NaN
// console.log(Number("g10"));//NaN
// console.log(Number("1fds0"));//NaN
// console.log(Number("10.98"));//10.98
// console.log(Number("10.98fdsfd"));//NaN
//總結(jié):想要轉(zhuǎn)整數(shù)用parseInt(),想要轉(zhuǎn)小數(shù)用parseFloat()
//想要轉(zhuǎn)數(shù)字:Number();要比上面的兩種方式嚴(yán)格
//其他類型轉(zhuǎn)字符串類型
>//1 .toString()
// var num=10;
// console.log(num.toString());//字符串類型
// //2 String();
//
// var num1=20;
// console.log(String(num1));
//如果變量有意義調(diào)用.toString()使用轉(zhuǎn)換
//如果變量沒(méi)有意義使用String()轉(zhuǎn)換
// var num2;
// console.log(num2.toString());
// var num3=null;
// console.log(num3.toString());
//這個(gè)可以
// var num2;
// console.log(String(num2));
// var num3=null;
// console.log(String(num3));
//其他類型轉(zhuǎn)布爾類型
//1 Boolean(值);
//
// console.log(Boolean(1));//true
// console.log(Boolean(0));//false
// console.log(Boolean(11));//true
// console.log(Boolean(-10));//true
// console.log(Boolean("哈哈"));//true
// console.log(Boolean(""));//false
// console.log(Boolean(null));//false
// console.log(Boolean(undefined));//false
// var str=10;
// console.log(+str);
/*
*
* 操作符:一些符號(hào)-----用來(lái)計(jì)算
*
* 算數(shù)運(yùn)算符: + - * / %
* 算數(shù)運(yùn)算表達(dá)式:由算數(shù)運(yùn)算符連接起來(lái)的表達(dá)式
* 一元運(yùn)算符: 這個(gè)操作符只需要一個(gè)操作數(shù)就可以運(yùn)算的符號(hào) ++ --
* 二元運(yùn)算符: 這個(gè)操作符需要兩個(gè)操作數(shù)就可以運(yùn)算,
* 三元運(yùn)算符: -----
* 復(fù)合運(yùn)算符: += -= *= /= %=
* 復(fù)合運(yùn)算表達(dá)式:由復(fù)合運(yùn)算符連接起來(lái)的表達(dá)式
*
* var num=10;
* num+=10;------>就是:num=num+10;
* console.log(num);20
*
*
* 關(guān)系運(yùn)算符: > < >= <= ==不嚴(yán)格的 ===嚴(yán)格的 !=不嚴(yán)格的不等 !==嚴(yán)格的不等
* 關(guān)系運(yùn)算表達(dá)式:由關(guān)系運(yùn)算符連接起來(lái)的表達(dá)式
* 關(guān)系運(yùn)算表達(dá)式的結(jié)果是布爾類型
* 邏輯運(yùn)算符:
* &&---邏輯與--并且
* ||---邏輯或---或者
* !---邏輯非---取反--取非
* 邏輯運(yùn)算表達(dá)式:由邏輯運(yùn)算符連接起來(lái)的表達(dá)式
* 表達(dá)式1&&表達(dá)式2
* 如果有一個(gè)為false,整個(gè)的結(jié)果就是false
* 表達(dá)式1||表達(dá)式2
* 如果有一個(gè)為true,整個(gè)的結(jié)果為true
* !表達(dá)式1
* 表達(dá)式1的結(jié)果是true,整個(gè)結(jié)果為false
* 表達(dá)式1的結(jié)果是false,整個(gè)結(jié)果為true
*
* 賦值運(yùn)算符: =
*
*
*
*
* */
//字面量: 把一個(gè)值直接賦值給一個(gè)變量