JavaScript - 1.語(yǔ)法變量 + 數(shù)據(jù)類型 + 運(yùn)算表達(dá)式 + 條件循環(huán)語(yǔ)句

1 JavaScript 語(yǔ)法

1.1 語(yǔ)句

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<div>
    <ul>
        <li></li>
        <li></li>
    </ul>
</div>

<script>
//---------------script標(biāo)簽最好放到HTML文檔的最后,</body>標(biāo)簽之前,能使瀏覽器更快的加載頁(yè)面.
</script>
</body>
</html>

1.2 注釋

單行注釋 // ..................
多行注釋 /* .................
                 ..............*/
還可以使用HTML中的注釋 <!------........------>

1.3 變量

使用 var 申明變量 : 
var name , age ;
name = "yuxiaohu";
age = 28;
也可以 : 
var name="yuxiaohu";

1.4 原始數(shù)據(jù)類型

★ String 
字符串類型 var name = "yuxiaohu";

★ Number 
數(shù)值類型  var age = 29;

★ Boolean 
布爾值 var sleeping = true / false;

★ Null
表示一個(gè)空對(duì)象指針

★ Undefinited
未定義數(shù)據(jù)類型

★ NaN
不是一個(gè)數(shù)字

<可以使用 typeof(name) 判斷數(shù)據(jù)類型.>

1.5 引用數(shù)劇類型

★ 數(shù)組 Array [ ]
var arr=[1,2,3];
arr.length  // 獲取數(shù)組的長(zhǎng)度

★ 對(duì)象 Objec { }
var people = {name:"yuxiaohu",year:1990,sex:"man"};
people.sex  // 讀取sex屬性的值為 : "man"

 內(nèi)建對(duì)象 : js內(nèi)部預(yù)定義的對(duì)象稱為內(nèi)建對(duì)象,如下面幾種常用的內(nèi)建對(duì)象.

Array 對(duì)象
var arr=[1,2,3];
arr.length

Math 對(duì)象 
var num = 7.561 ; 
var num = Match.round(num)  // 結(jié)果 : num = 8

Date 時(shí)間對(duì)象 
var tim = new Date();
var today = tim.getDay();
var hours = tim.getHours();
var month = tim.getMonth();

 宿主對(duì)象 : 瀏覽器提供的預(yù)定義對(duì)象被稱為宿主對(duì)象 ( host object )

 函數(shù)  Function yxh ( )
function yxh ( b , c ) {
        var a = b * c ;
        return(a);
 }
yxh(10,20) ;  // 200

重點(diǎn) :
1握侧、基本類型 ( Undefined泊窘、Null叶骨、Boolean匹层、Number极谊、String )
這些類型在內(nèi)存中分別占有固定大小的空間六敬,他們的值保存在棧內(nèi)存碘赖,我們通過(guò)按值來(lái)訪問的。
2外构、引用數(shù)據(jù)類型 ( Array [ ] 崖疤、Object { }、Function ( ) )
引用類型典勇,值大小不固定劫哼,棧內(nèi)存中存放地址指向堆內(nèi)存中的對(duì)象。是按引用訪問的割笙。如下圖所示:棧內(nèi)存中存放的只是該對(duì)象的訪問地址权烧,在堆內(nèi)存中為這個(gè)值分配空間。由于這種值的大小不固定伤溉,因此不能把它們保存到棧內(nèi)存中般码。但內(nèi)存地址大小是固定的,因此可以將內(nèi)存地址保存在棧內(nèi)存中乱顾。 這樣板祝,當(dāng)查詢引用類型的變量時(shí), 先從棧中讀取內(nèi)存地址走净, 然后再通過(guò)地址找到堆中的值券时。對(duì)于這種,我們把它叫做按引用訪問伏伯。


詳細(xì)解釋

1.6 運(yùn)算符和表達(dá)式

 算術(shù)運(yùn)算:( +,-,*,/,%,++,-- )
 關(guān)系運(yùn)算 : (>,<,>=,<=,==,!=) 將兩個(gè)值做比較-->返回值:true / false 
關(guān)系運(yùn)算中:默認(rèn)將所有類型轉(zhuǎn)為數(shù)字再比較

特殊情況
A.NaN:NaN不等于橘洞,不大于,不小于任何值(包括自己)
             NaN和任何數(shù)據(jù)做!=比較時(shí)说搅,始終返回true
             isNaN(n):本意是判斷一個(gè)值是否是NaN
 邏輯運(yùn)算:( &&   ||   ! ) 將多個(gè)關(guān)系運(yùn)算綜合起來(lái)炸枣,得出最終結(jié)論,返回值:true、false
 賦值運(yùn)算:( +=  -=   *=   /=    %= )
 三目運(yùn)算 :  
    var a = 10;
    var b = 11;
    var c = (a > b) ? a : b; 結(jié)果 c = 11
判斷 a 與 b 的大小 , 如果 a 大于 b 則 c = a , 否則 c  =  b;

1.7 數(shù)據(jù)類型的轉(zhuǎn)換

 自動(dòng)轉(zhuǎn)換 :
不需要程序員干預(yù)适肠,js自動(dòng)完成的類型轉(zhuǎn)換僅討論算數(shù)計(jì)算中的自動(dòng)轉(zhuǎn)換:

A. 算數(shù)計(jì)算中霍衫,一切數(shù)據(jù)都默認(rèn)轉(zhuǎn)為數(shù)字,再計(jì)算 
Boolean類型:true-->1  false-->0
特殊情況:
如果數(shù)據(jù)無(wú)法被轉(zhuǎn)為數(shù)字類型會(huì)被轉(zhuǎn)為NaN                    
NaN不等于侯养,不大于慕淡,不小于任何值
NaN參與任何算數(shù)運(yùn)算結(jié)果永遠(yuǎn)為NaN

B.在+運(yùn)算中,碰到字符串沸毁,+就變?yōu)樽址唇?另一個(gè)不是字符串的數(shù)據(jù),被自動(dòng)轉(zhuǎn)為字符串
 強(qiáng)制轉(zhuǎn)換 :

任意-->字符串:2個(gè)API
x.toString(); x不是undefined或null時(shí)傻寂,才可用
String(x) 

任意-->數(shù)字:3個(gè)API
a.非字符串類型轉(zhuǎn)數(shù)字 Number(x)  // 相當(dāng)于隱式轉(zhuǎn)換
b. 將字符串轉(zhuǎn)為數(shù)字:2個(gè)API
parseInt(str) :  將字符串里面的數(shù)字轉(zhuǎn)化成整數(shù).
(從第一個(gè)字符開始依次讀取每個(gè)數(shù)字,只要碰上第一個(gè)非數(shù)字字符就停止,
自動(dòng)跳過(guò)開頭的空字符不認(rèn)識(shí)小數(shù)點(diǎn))
何時(shí)使用:將字符串轉(zhuǎn)為整數(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

任意類型-->Boolean: Boolean(x)-->相當(dāng)于隱式轉(zhuǎn)換
只有5個(gè)值轉(zhuǎn)為false:
 "" , NaN , undefined , null , 0
其余都轉(zhuǎn)為true

1.8 條件語(yǔ)句

 條件判斷
var age = 20;
if (age >= 18) { // 如果age >= 18為true息尺,則執(zhí)行if語(yǔ)句塊
    alert('成年人');
} else { // 否則執(zhí)行else語(yǔ)句塊
    alert('未成年人');
}

 多行條件判斷
var age = 3;
if (age >= 18) {
    alert('成年人');
} else if (age >= 6) {
    alert('少年');
} else {
    alert('小孩');
}

 switch結(jié)構(gòu)
多個(gè)if...else連在一起使用的時(shí)候,可以轉(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 等于其他值');
    }

1.9 循環(huán)語(yǔ)句

 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...
eg:
var o = {name: 'Jack',age: 20,city: 'Beijing'};
for (var key in o) {
    alert(key); // 'name', 'age', 'city'
}

重點(diǎn) : 全局變量和局部變量

變量作用域:一個(gè)變量的可用范圍
 全局作用域:window
全局變量——放在全局作用域(window)中的變量
可在程序的任何位置訪問全局變量

 局部作用域:在函數(shù)調(diào)用時(shí)才創(chuàng)建的作用域
局部變量
1. 參數(shù)變量
2. 在函數(shù)定義中var的變量
***僅在函數(shù)調(diào)用時(shí)搂誉,動(dòng)態(tài)創(chuàng)建
調(diào)用時(shí),如果局部有静檬,就不用全局的炭懊!
***調(diào)用后,隨局部作用域一同銷毀
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拂檩,一起剝皮案震驚了整個(gè)濱河市侮腹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌稻励,老刑警劉巖父阻,帶你破解...
    沈念sama閱讀 221,406評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異望抽,居然都是意外死亡加矛,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門煤篙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)斟览,“玉大人,你說(shuō)我怎么就攤上這事辑奈】撩” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵鸠窗,是天一觀的道長(zhǎng)味悄。 經(jīng)常有香客問我,道長(zhǎng)塌鸯,這世上最難降的妖魔是什么侍瑟? 我笑而不...
    開封第一講書人閱讀 59,537評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上涨颜,老公的妹妹穿的比我還像新娘费韭。我一直安慰自己,他們只是感情好庭瑰,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,536評(píng)論 6 397
  • 文/花漫 我一把揭開白布星持。 她就那樣靜靜地躺著,像睡著了一般弹灭。 火紅的嫁衣襯著肌膚如雪督暂。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,184評(píng)論 1 308
  • 那天穷吮,我揣著相機(jī)與錄音逻翁,去河邊找鬼。 笑死捡鱼,一個(gè)胖子當(dāng)著我的面吹牛八回,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驾诈,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼缠诅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了乍迄?” 一聲冷哼從身側(cè)響起管引,我...
    開封第一講書人閱讀 39,668評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎闯两,沒想到半個(gè)月后汉匙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡生蚁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,299評(píng)論 3 340
  • 正文 我和宋清朗相戀三年噩翠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邦投。...
    茶點(diǎn)故事閱讀 40,438評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伤锚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出志衣,到底是詐尸還是另有隱情屯援,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評(píng)論 5 349
  • 正文 年R本政府宣布念脯,位于F島的核電站狞洋,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绿店。R本人自食惡果不足惜吉懊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,807評(píng)論 3 333
  • 文/蒙蒙 一庐橙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧借嗽,春花似錦态鳖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至惨寿,卻和暖如春邦泄,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背裂垦。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工顺囊, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缸废。 一個(gè)月前我還...
    沈念sama閱讀 48,827評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像驶社,于是被迫代替她去往敵國(guó)和親企量。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,446評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容