JS第一天

  • ECMAScript js的標(biāo)準(zhǔn)語法
  • DOM(html每一個(gè)標(biāo)簽對(duì)應(yīng)一個(gè)對(duì)象)
  • html(控制內(nèi)容)+css(控制樣式)+js(控制行為)

html+js

  • 嵌入式

      <head>
        <script>
          //js代碼
        </script>
      </head>
    
  • 導(dǎo)入(保證了html和js代碼解耦)

       <head>
        <script src=""></script>
      </head>
    

注釋

兩種

  • //

  • /*

    */

標(biāo)識(shí)符

由字母秦士,數(shù)字敞临,下劃線块差,$虽画,不能以數(shù)字開頭,不能為關(guān)鍵字

數(shù)據(jù)類型(數(shù)據(jù)最小的單位)

弱類型語言

  • 基本數(shù)據(jù)類型
  • undefined;
    var a;//a的數(shù)據(jù)類型undefined
  • null;
    var b=null;//b的數(shù)據(jù)類型null
    var result=typeof b; //object
  • number;
    var a=10;
  • boolean确徙;
    var a=true;
  • string;
    "" , '';

檢測(cè)變量所屬的數(shù)據(jù)類型
var sesult =typeof 變量名

提問框
var result = prompt("提問內(nèi)容");
alert("提示信息");
console.log();

基本數(shù)據(jù)類型之間的轉(zhuǎn)換

Undefiend

一般不考慮其他基本數(shù)據(jù)類型轉(zhuǎn)換為undefined

Null類型

一般不考慮其他基本數(shù)據(jù)類型轉(zhuǎn)換為null

Boolean類型

其他類型轉(zhuǎn)換為Boolean:
雖然boolean類型的取值只有兩個(gè)执桌,但是ECMAScript中所有的類型的值都有
與這兩個(gè)Boolean值等價(jià)的值

Boolean        true          false
String        非空字符串       ""
Number        任何非0非NaN      0和NaN
Undefined                 undefined    
Null                         null

例如:

   Boolean("");        //false
   Boolean(0);        //false
   Boolean(NaN);    //false
   Boolean(null)    //false
   Boolean(undefined)    //false
   Boolean("briup");    //true
   Boolean(1);        //true

Number

isNaN(para) 當(dāng)參數(shù)para不是數(shù)值的時(shí)候返回true

數(shù)值轉(zhuǎn)換

Number()
如果轉(zhuǎn)換的值是null,undefined,number,boolean
    Number(true);    //1
    Number(false);    //0
    Number(10);    //10 如果是數(shù)字值,原樣輸出
    Number(null);        //0
    Number(undefined);    //NaN
如果是字符串:
    Number("123");  //如果僅包含數(shù)值鄙皇,轉(zhuǎn)換為對(duì)應(yīng)的數(shù)值
    Number("234.1");//解析為對(duì)應(yīng)的小數(shù)
    Number("+12.1");//首位為符號(hào)位,其余為為數(shù)值仰挣,轉(zhuǎn)換為對(duì)應(yīng)的數(shù)值
    NUmber("1+2.3");//NaN 符號(hào)位出現(xiàn)在其他位置伴逸,解析為NaN
    Number("0xa");  //如果僅包含十六進(jìn)制格式,轉(zhuǎn)為為對(duì)應(yīng)的十進(jìn)制的值
    Number("010");    //注意膘壶!不會(huì)當(dāng)做八進(jìn)制被解析错蝴,結(jié)果為10
    Number("");    //空字符串被轉(zhuǎn)換為0
    Number("123ac");//包含其他字符: NaN
    Number(" 12");    //12
parseInt()
  • 如果轉(zhuǎn)換的值是null,undefined,number,boolean

      parseInt(true);        //NaN
      parseInt(false);    //NaN
      parseInt(null);        //NaN
      parseInt(undefined);    //NaN
      parseInt(10);        //10 如果是整數(shù)值,原樣輸出
      parseInt(10.3);        //10 如果是小數(shù)颓芭,舍去小數(shù)點(diǎn)一級(jí)后面的內(nèi)容
    
  • 如果是字符串:

      parseInt("123");  //123顷锰;如果僅包含數(shù)值,轉(zhuǎn)換為對(duì)應(yīng)的數(shù)值
      parseInt("234.1");//234亡问;小數(shù)點(diǎn)后面的數(shù)值省略
      parseInt("+12.1");//12官紫; 首位為符號(hào)位,其余為為數(shù)值玛界,轉(zhuǎn)換為整數(shù)万矾,結(jié)果為
      parseInt("0xa");  //10; 如果僅包含十六進(jìn)制格式慎框,轉(zhuǎn)為為對(duì)應(yīng)的十進(jìn)制的值
      parseInt("010");  //10; 注意后添!不會(huì)當(dāng)做八進(jìn)制被解析笨枯,結(jié)果為10
      parseInt("");      //NaN;空字符串被轉(zhuǎn)換為NaN
      parseInt("1+2.3");//1;    如果首位為數(shù)值,依次向后解析馅精,找到連續(xù)的數(shù)值严嗜,直到
                  遇到第一個(gè)非數(shù)值的,將之前獲取的數(shù)值轉(zhuǎn)換為Number返回
      parseInt("123ac");//123;   
    
parseFloat()
    與parseInt()類似洲敢,
    但是會(huì)將小數(shù)轉(zhuǎn)換為對(duì)應(yīng)的小數(shù) 

String

toString() 轉(zhuǎn)化為字符串

包裝器類 number -> Number
       var num = 10;
       num.toString();  "10"
       num.toString(2); "1010"
       num.toString(8); "12"
       num.toString(16);"a"

注意:
       null ,undefined 沒有toString() 方法
       null.toString()        //報(bào)錯(cuò) TypeError: null has no properties
   undefined.toString();    //報(bào)錯(cuò) TypeError: undefined has no properties

String() 用來將任意數(shù)據(jù)類型轉(zhuǎn)換為字符串

       String(null)        "null" 
       String(undefined);     "undefined"

復(fù)雜數(shù)據(jù)類型 Object

ECMAScript中的對(duì)象其實(shí)就是一組數(shù)據(jù)和功能的集合漫玄。

創(chuàng)建Object實(shí)例:

new Object() => {}; 創(chuàng)建一個(gè)空對(duì)象

new Object();

    var person = new Object();
    person.name = "briup";
    person.age = 22;

使用對(duì)象字面量表示法

     不同的屬性之間用','分割,屬性名和屬性值之間用':'分割
    var person = {
        name : "briup",
        age : 22
    };

訪問對(duì)象屬性

點(diǎn)表示法压彭,右側(cè)必須是以屬性名稱命名的簡(jiǎn)單標(biāo)識(shí)符

person.name

中括號(hào)表示法睦优,中括號(hào)中必須是一個(gè)計(jì)算結(jié)果為字符串的表達(dá)式

可以通過變量訪問屬性

    var a = "name";
    person[a];    //既person["name"]
    person["first name"]

如果屬性名中包含語法錯(cuò)誤的字符,或者屬性名使用的是關(guān)鍵字或保留字壮不,
可以使用中括號(hào) person["first name"]

刪除屬性

delete只是斷開了屬性和宿主對(duì)象的聯(lián)系汗盘,而不會(huì)操作屬性中的屬性,并且delete
只會(huì)刪除自有屬性询一,不能刪除繼承屬性隐孽。在銷毀對(duì)象時(shí),為了防止內(nèi)存泄露健蕊,遍歷屬
性中的屬性菱阵,依次刪除所有屬性。

  • 語法:delete 屬性訪問表達(dá)式
  • 例子:delete stu.name //刪除學(xué)生對(duì)象中的name屬性

檢測(cè)屬性

in 檢測(cè)某屬性是否是某對(duì)象的自有屬性或者是繼承屬性

    "toString" in student

hasOwnProperty()檢測(cè)給定的屬性是否是對(duì)象的自有屬性缩功,對(duì)于繼承屬性將返回false

    var o = {
        x:1
    }
    o.hasOwnProperty("x");    //true, x 為o的自有屬性
    o.hasOwnProperty("y");    //false,o 中不存在屬性y
    o.hasOwnProperty("toString");    //toString為繼承屬性
 propertyIsEnumerable() 檢測(cè)給定的屬性是否是該對(duì)象的自有屬性晴及,并且該屬性是可枚舉的
    通常由JS代碼創(chuàng)建的屬性都是可枚舉的,但是可以使用特殊的方法改變可枚舉性掂之。
    student.propertyIsEnumerable("toString")    //false 不可枚舉

Object屬性及方法

Object 類型所具有的任何屬性和方法也同樣存在于其他對(duì)象中抗俄,任何對(duì)象繼承于Object對(duì)象

Object中常用的方法:

  • hasOwnProperty(propertyName); 用于檢查給定的屬性名是否是對(duì)象的自有屬性,
  • toString(); 返回對(duì)象的字符串表示
  • valueOf(); 返回對(duì)象的字符串世舰,數(shù)值动雹,布爾值的表示。
    -------
  • propertyIsEnumerable(propertyName); 用于檢查給定的屬性在當(dāng)前對(duì)象實(shí)例中是否存在
  • constructor: 保存用戶創(chuàng)建當(dāng)前對(duì)象的函數(shù)
  • isPrototypeOf(object); 用于檢查傳入的對(duì)象是否是原型
  • toLocaleString(); 返回對(duì)象的字符串表示跟压,該字符串與執(zhí)行環(huán)境的地區(qū)對(duì)應(yīng)

對(duì)象序列化

對(duì)象序列化是指將對(duì)象的狀態(tài)轉(zhuǎn)換為字符串胰蝠,也可以反序列化奖唯,將字符串還原為對(duì)象
函數(shù)港谊,RegExp,Error對(duì)象费变,undefined值不能序列化和反序列化哎垦。

  • JSON.stringify(obj) 將對(duì)象序列化為Json字符串,只能序列化對(duì)象可枚舉的自有屬性甸怕。
  • toJSON() Object原型中沒有toJSON方法洁桌,但是對(duì)于要執(zhí)行序列化的對(duì)象來說
    JSON.stringify()方法會(huì)調(diào)用toJSON方法眼五,如果待序列化的對(duì)象中存在這個(gè)
    方法吏廉,則調(diào)用笋庄,返回值即時(shí)序列化的結(jié)果效扫,而不是原始對(duì)象倔监。
  • JSON.parse(jsonStr) 反序列化
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市菌仁,隨后出現(xiàn)的幾起案子浩习,更是在濱河造成了極大的恐慌,老刑警劉巖济丘,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谱秽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡摹迷,警方通過查閱死者的電腦和手機(jī)疟赊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泪掀,“玉大人听绳,你說我怎么就攤上這事∫旌眨” “怎么了椅挣?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)塔拳。 經(jīng)常有香客問我鼠证,道長(zhǎng),這世上最難降的妖魔是什么靠抑? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任量九,我火速辦了婚禮,結(jié)果婚禮上颂碧,老公的妹妹穿的比我還像新娘荠列。我一直安慰自己,他們只是感情好载城,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布肌似。 她就那樣靜靜地躺著,像睡著了一般诉瓦。 火紅的嫁衣襯著肌膚如雪川队。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天睬澡,我揣著相機(jī)與錄音固额,去河邊找鬼。 笑死煞聪,一個(gè)胖子當(dāng)著我的面吹牛斗躏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播昔脯,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼瑟捣,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼馋艺!你這毒婦竟也來了栅干?” 一聲冷哼從身側(cè)響起迈套,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碱鳞,沒想到半個(gè)月后桑李,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡窿给,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年贵白,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片崩泡。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡禁荒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出角撞,到底是詐尸還是另有隱情呛伴,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布谒所,位于F島的核電站热康,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏劣领。R本人自食惡果不足惜姐军,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尖淘。 院中可真熱鬧奕锌,春花似錦、人聲如沸村生。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽梆造。三九已至缴守,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間镇辉,已是汗流浹背屡穗。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留忽肛,地道東北人村砂。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像屹逛,于是被迫代替她去往敵國和親础废。 傳聞我的和親對(duì)象是個(gè)殘疾皇子汛骂,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對(duì)象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,233評(píng)論 0 4
  • 什么是 JavaScript 語言? JavaScript 是一種輕量級(jí)的腳本語言评腺。所謂“腳本語言”(script...
    oWSQo閱讀 1,790評(píng)論 0 1
  • 再次回到學(xué)校本就讓我感到極度孤單恐懼帘瞭,曾經(jīng)熟悉的同學(xué)朋友都已經(jīng)離開,所有的時(shí)刻都只有自己一個(gè)人去面對(duì)蒿讥,面對(duì)這空蕩蕩...
    墨子涵閱讀 416評(píng)論 3 2
  • 草長(zhǎng)鶯飛二月天蝶念,拂堤楊柳醉春煙。兒童散學(xué)歸來早芋绸,忙趁東風(fēng)放紙鳶媒殉。 陽春三月,正是放風(fēng)箏的好時(shí)節(jié)摔敛。今天天氣格...
    中學(xué)生馬小兌作文集閱讀 534評(píng)論 4 6
  • 弟弟最近的模仿能力與日俱增廷蓉。 1.吃的模仿能力 姐姐在吃桂圓干,先咬開桂圓皮马昙,再拿出桂圓肉來桃犬。 坐在游戲墊子上的弟...
    師爺是枚美男子閱讀 422評(píng)論 0 0