一個(gè)完整的JavaScript應(yīng)由以下三個(gè)部分構(gòu)成:
ECMASctipt DOM DOM
解釋型語(yǔ)言
類(lèi)似于C和Java的語(yǔ)言結(jié)構(gòu)
動(dòng)態(tài)語(yǔ)言
基于原型的面向?qū)ο?br>
——JS代碼需要編寫(xiě)到script標(biāo)簽中
<script type="text/javascipt">
//控制瀏覽器彈出一個(gè)警告框
alert("你是豬");
//讓計(jì)算機(jī)在頁(yè)面上輸出一個(gè)內(nèi)容·
//document.write()可以向body中輸出一個(gè)·內(nèi)容·
document.write("你看我出不出來(lái)");
//向控制臺(tái)輸出一個(gè)內(nèi)容
//console.log()的作用是向控制臺(tái)輸出一個(gè)內(nèi)容
console.log("你猜我在哪?");
</script>
<!--
script標(biāo)簽一旦用于引入外部文件了和蚪,就不能在編寫(xiě)代碼了攒霹,即使編寫(xiě)了瀏覽器也會(huì)忽略
如果需要?jiǎng)t可以在創(chuàng)建一個(gè)新的script標(biāo)簽用于編寫(xiě)內(nèi)部代碼
-->
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript">
alert("我是內(nèi)部的js代碼");
</script>
標(biāo)識(shí)符
在JS中所有的可以有我們自主命名的都可以稱(chēng)為標(biāo)識(shí)符
例如:變量名催束,函數(shù)名,屬性名都屬于標(biāo)識(shí)符
命名一個(gè)標(biāo)識(shí)符需要遵守如下規(guī)則:
1.標(biāo)識(shí)符中可以含有字母·塔淤,數(shù)字速妖,_.$
2.標(biāo)識(shí)符不能以數(shù)字開(kāi)頭
3.標(biāo)識(shí)符不能是ES中的關(guān)鍵字或保留字
4.標(biāo)識(shí)符一般都使用駝峰命名法
5.在字符串中可以使用\表示轉(zhuǎn)義字符
\n 表示換行
var str ="hello";
str = "我說(shuō):"今天天氣不錯(cuò)"";
str = "\";
alert("str");輸出字符串
alert(str);輸出變量
數(shù)據(jù)類(lèi)型指的是字面量的類(lèi)型
在JS中一共有6種數(shù)據(jù)類(lèi)型
String 字符串
Number 數(shù)值
Boolean 布爾值
Null 空值
Undefined 未定義
Object 對(duì)象
其中 String ,Number ,Boolean,Null , Undefined屬于基本數(shù)據(jù)類(lèi)型
而Object屬于引用數(shù)據(jù)類(lèi)型
可以使用typeof來(lái)檢查一個(gè)變量的類(lèi)型
var a= "bcd";
var b = 134;
console.log(typeof b);
NaN是一個(gè)特殊的數(shù)字
強(qiáng)制類(lèi)型轉(zhuǎn)換
只將一個(gè)數(shù)據(jù)類(lèi)型強(qiáng)制轉(zhuǎn)換為其它數(shù)據(jù)類(lèi)型
類(lèi)型轉(zhuǎn)換主要指罕容,將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為String杀赢,Number,Boolean
將其他的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為String
<script type="text/javascript">
/*
將其他的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為String
方式一:
調(diào)用被轉(zhuǎn)換數(shù)據(jù)類(lèi)型的toSting()方法
該方法不會(huì)影響到原變量滤淳,他會(huì)將轉(zhuǎn)換的結(jié)果返回
注意:null和undefined這兩個(gè)值沒(méi)有toSting方法
*/
var a = 123;
a = a.toString();
console.log(typeof a);
console.log(a);
/*
方法二:
調(diào)用String()函數(shù)脖咐,并將被轉(zhuǎn)換的數(shù)據(jù)作為參數(shù)傳遞給函數(shù)
使用String()函數(shù)做強(qiáng)制類(lèi)型轉(zhuǎn)換時(shí),
對(duì)于Number和Boolean實(shí)際上就是調(diào)用的toSting()方法
但是對(duì)于null和underfined偿凭,就不會(huì)調(diào)用toSting()方法
他會(huì)將null和underfined直接轉(zhuǎn)化為"null"和"underfined"
*/
a = 456;
a = String(a);
console.log(typeof a);
console.log(a);
var b= null;
console.log(typeof b);
console.log(b);
</script>
將其他的數(shù)據(jù)類(lèi)型轉(zhuǎn)化為Number
/*
將其他的數(shù)據(jù)類(lèi)型轉(zhuǎn)化為Number
使用Number()函數(shù)
-字符串--> 數(shù)字
1弯囊,如果是純數(shù)字的字符串胶果,則直接將其轉(zhuǎn)化為數(shù)字
2,如果是字符串中有非數(shù)字的內(nèi)容霎烙,則將其轉(zhuǎn)化為NaN
3,如果字符串是一個(gè)空串或者是一個(gè)全是空格的字符串悬垃,則轉(zhuǎn)化為0
-布爾-->數(shù)字
true 轉(zhuǎn)化為1
false 轉(zhuǎn)化為 0
-null--> 數(shù)字 0
- underfined--> 數(shù)字NaN
*/
var c = "789";
c = Number(c);
console.log(typeof c);
console.log(c);
c = "78a";
c = Number(c);
console.log(typeof c);
console.log(c);
c = null;
c = Number(c);
console.log(typeof c);
console.log(c);
c = true;
c = Number(c);
console.log(typeof c);
console.log(c);
//調(diào)用parseInt()函數(shù)將a轉(zhuǎn)化為Number
/*
parseInt()可以將一個(gè)字符串中的有效整數(shù)取出來(lái)
然后轉(zhuǎn)化為Number
*/
c = "123fj";
c = parseInt(c);
console.log(typeof c);
console.log(c);
/*
parseFloat()作用和parseInt()類(lèi)似尝蠕,不同的是它可以獲得有效的小數(shù)
*/
c ="123.456fj";
c = parseFloat(c);
console.log(typeof c);
console.log(c);
進(jìn)制轉(zhuǎn)化
/*
在JS中羊赵,如果需要表示16進(jìn)制的數(shù)字,則需要0x開(kāi)頭
如果需要表示8進(jìn)制的數(shù)字昧捷,則需要0開(kāi)頭
*/
//16進(jìn)制
a = 0x10;
//8進(jìn)制
a = 070;
console.log(a);
將其他的數(shù)據(jù)類(lèi)型轉(zhuǎn)化為Boolean
使用Boolean()函數(shù)
/*
將其他的數(shù)據(jù)類(lèi)型轉(zhuǎn)化為Boolean
-使用Boolean()函數(shù)
-數(shù)字-->布爾
除了0和NaN闲昭,其余的都是true
- 字符串-->布爾
除了空串,其余的都是true
-null 和 underfined都會(huì)轉(zhuǎn)化為 false
對(duì)象也會(huì)轉(zhuǎn)化為true
*/
var a = 123;//true
a = -123;//true
a = 0;//false
a = Infinity;//true
a = NaN;//false
a = Boolean(a);
a = "";
a = Boolean(a);
a = null;
a = Boolean(a);
console.log(typeof a);
console.log(a);
自增和自減
自增分成兩種:后++(a++)和前++(++a)
無(wú)論是a++還是++a靡挥,都會(huì)立即使原變量的值自增1序矩;
不同的是a++和++a的值不同;
a++的值等于原變量的值(自增前的值)
++a的值等于圓水泥變量的新值(自增后的值)
三種邏輯運(yùn)算符
跋破!非
所謂非運(yùn)算就是對(duì)一個(gè)布爾值值進(jìn)行取反操作
&&與
||或
條件運(yùn)算符
條件運(yùn)算符也叫三元運(yùn)算符
語(yǔ)法:
條件表達(dá)式簸淀?語(yǔ)句1:語(yǔ)句2;
執(zhí)行的流程:
條件運(yùn)算符在執(zhí)行時(shí)毒返,首先對(duì)條件表達(dá)式進(jìn)行求值租幕,
如果該值為true拧簸,則執(zhí)行語(yǔ)句1劲绪,并返回知心話(huà)結(jié)果;
如果該值為false,則執(zhí)行語(yǔ)句2贾富,并返回知心話(huà)結(jié)果歉眷;
true?alert("語(yǔ)句1"):alert("語(yǔ)句2");
false?alert("語(yǔ)句1"):alert("語(yǔ)句2");
//獲取a b c中的最大值
var a = 10;
var b = 20;
var c = 30;
//a>b ? alert("a大"):alert("b大");
var max = a > b ? a : b ;
max = max > c ? max : c ;
//不推薦
// var max = a > b ? (a > c ? a : c ) : (b > c ? b : c );
console.log("max = "+ max);
優(yōu)先級(jí)
在JS中運(yùn)算符也有優(yōu)先級(jí)
在JS中有一個(gè)運(yùn)算符優(yōu)先級(jí)的表
表中越靠上優(yōu)先級(jí)越高
優(yōu)先級(jí)一樣從左往右
代碼塊
JS種的代碼塊中有分組的作用翻翩,沒(méi)有其他用途
流程控制語(yǔ)句
按順序從上往下依次執(zhí)行