国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

《JavaScript高級程序設計》筆記:基本概念

ygyooo / 769人閱讀

摘要:一寫在前面最近重讀高級程序設計,總結下來,查漏補缺。但這種影響是單向的修改命名參數不會改變中對應的值。這是因為對象的長度是由傳入的參數個數決定的,不是由定義函數時的命名參數的個數決定的。實際改變會同步,改變也會同步

一、寫在前面

最近重讀《JavaScript高級程序設計》,總結下來,查漏補缺。

二、JS簡介 2.1 JS組成

ECMAscript:以ECMA-262為基礎的語言,由瀏覽器支持

DOM:編程接口(API), 將頁面映射成節點結構(文檔樹),提供操作方法

BOM:瀏覽器對象模型,處理瀏覽器窗口和框架交互(部分擴展)

2.2

藍色線代表網絡讀取,紅色線代表執行時間,均針對腳本;綠色線代表 HTML 解析。

默認,同步,順序解析,解析到立即加載,加載完立即執行。

defer,異步,同時加載,html解析完成后執行(多個,不一定按順序執行,適用外鏈腳本)(HTML5要求按出現順序執行,但實際不一定,不一定會在DOMContentLoaded事件觸發前執行)

async,異步,同時加載,加載完立即執行(多個,亂序執行)

2. XHTML和HTML主要不同?

元素必正確嵌套,防止

單標簽< />、雙標簽<> 閉合

標簽名、屬性大小寫敏感

必須有根元素

三、基本概念 3.1 ECMAScript語法

區分大小寫

標識符:

參數,變量,屬性,函數名

以字母、下劃線_、$開頭

慣例為駝峰

名稱不能為關鍵字

注釋:

單行注釋 / /

塊級注釋 /* */

嚴格模式: 編譯指示" user strict "

語句:

推薦以分號;結尾

if( ) 可省略代碼塊{ }直接書寫語句,但推薦不省略

關鍵字:

break case catch continue debugger default delete

do else finally for function if in

instanceof new return switch this throw try

typeof var void while with

保留字:

abstract boolean byte char class const debugger double

enum export extends final float goto implements import

int interface long native package private protected public

short static super synchronized throws transient volatile

外加let、yield、eval、arguments

3.2數據類型

變量:松散類型(可修改值的類型),var創建時有作用域

只定義未初始化,值為undefined

不推薦在局部中定義全局變量

數據類型:

簡單(基本)數據類型:number,string,Boolean,undef,null

復雜數據類型:Object

typeof操作符:

值:number,string,boolean,undefined,null,object,function

特殊情況: typeof null ---> object 被認為是空對象指針

對象:

空對象,初始化時obj = null 通過 obj != null 來看是否保存對象引用

新建對象:new Object( ) 或 new Object

布爾:

true false 區分大小寫

數值:

八進制(嚴格模式下失效),0開頭,后續值超過7則 079無效,解析為79

十六進制,不區分大小寫,0x開頭歐,后續0-9、A-F

科學計數法,123e7或123e-7,浮點數最大精度17位小數

浮點數進行計算,結果不準確

數值范圍Number.MIN_VALUE 5e-324 ~ Number.MAX_VALUE 1.7976931348623157e+308,超出對應±infinity

NaN,返回不為數值,也為數值類型,不影響代碼執行,操作NaN都返回NaN,與任何值都不相等

字符串:

0或多個16位unicode字符組成

單雙引號無區別

字符字面量:  f " " x u 及6位unicode字符

一旦創建,值不可改變,只能---->新的創建,銷毀原來的(舊版瀏覽器執行速度慢)

3.3 方法

數值

isNaN( )隱式轉換數值

Number( ),null ----> 0,undefined ---> NaN,八進制前導0失效,十六進制轉換為十進制整數

parseInt( ),直到不是數字,保留整數,識別八進制、十六進制,可指定第二個參數parseInt(a,8)指定八進制

parseFloat( ),不解析前導0,可用于:科學計數法轉完全展示

字符串:

toString(a) 參數可設置進制,數據轉換值,有些不能轉換(undefined,null)

String()遵循先按toString執行,不成功再按String()轉換(undefined----> undefined , null ----> null )

對象:

constructor 創建實例的函數(構造函數)

hansOwnProperty 檢查當前對象中存在某屬性(不查原型)

isPrototypeOf 檢查是否是某對象的原型

propertyIsEnumerable 能否使用for-in枚舉

toLocaleString 返回對象字符串表示

toString( ) 對象的字符串表示

valueOf( ) 返回對象的字符串、數值或布爾值

3.3 操作符

算數、位、關系、相等操作符

一元操作符(隱式轉換):

只能操作一個值

前置(副效應:語句被求值前值改變)

后置(語句被求值后值改變)

含對象,執行valueOf( ) 后得到的值進行加減

位操作符:

轉換為32位整數,31位二進制數+ 1位符號位(0正1負)

按位非 ~ 得到值的負值 - 1(底層操作,比 - a - 1 快)

按位與 & 二進制每位相與得出二進制值

按位或 | 二進制每位相或得出二進制值

按位異或^ 兩位相異則為1,否則為0

左移 << 移動后補0,不影響符號位

右移 >> 保留符號位,移動后補0

無符號右移 >>> 不保留符號位,負數一般右移后很大

布爾操作符:

非 !

與 && 短路操作(有 false 則不往下執行),null 返回null,NaN返回NaN ,undefined返回undefined

或 || 短路操作(有true 則不往下執行 )

乘性操作符:

隱式轉換為數值后計算,/ 除法 ,% 取余

加性操作符:

+ 加法, - 減法

關系操作符:

< 、 >、 <=、 >=

都為字符串時,比較字符串字符編碼值

有對象,轉valueOf( ),不成則toString( )

字符串比較,大寫小于小寫,如需比較可全轉小寫

都為字符串的數字,則按編碼比

一個數字一個字符串,會轉為數值

轉換出NaN,則結果false

相等操作符:

強制轉換規則:有布爾轉為數值、有數有字符串轉為數值

只有一個對象,按照valueOf()轉換后比較

null == undefined,null !== undefined

兩個對象,比較是否指向同一對象

條件操作符:條件?‘真,取值’:‘假,取值’
賦值操作符:

=、 +=、 *=、 /=、 %=、 <<=、 >>=、 >>>=(簡化書寫,不影響性能)

逗號操作符:

分隔多個操作

a =(1,2,3,4),a值為最后一個4

3.4 PS:

1. valueOf與toString

推薦閱讀 《javascript高級程序設計》筆記:valueOf() / toString() 對比

2. 負數的二進制表示:

絕對值的二進制碼,按位取反,加1,得到

3. 按位非運算符 ~

function fast() {
    let s = 2222222222; 
    let start1 = Date.now();
    for (var i = 1; i<10000000000;i++) { s = ~ s }; 
    console.log("fast",Date.now() - start1); 
 }; 
 function slow() {
    let s = 2222222222; 
    let start2 = Date.now();
    for (var i = 1; i<10000000000;i++) { s = - (s + 1) }; 
    console.log("slow",Date.now() - start2); 
 };
 fast();
 slow();

相差4-5秒左右,底層運算更快

4. && || 操作
let d = { name: "aa" } ,??代表某參數

d && ?? 返回??

?? && d ??為true返回d,否則返回??

有null NaN undefined 返回 對應null NaN undefined

d || ?? 返回 d

?? || d ??為false返回d

d || e 返回 d

都是null NaN undefined 返回 對應null NaN undefined

3.5 語句

if (條件) { 代碼塊 }

do-while 后測試循環語句,while中滿足則執行

while 前測試循環語句

for :while做不到,for也做不到、for( ; ; )三參數可選

for-in 循環對象屬性,順序不可預測

label 名字:語句,結合for循環,方便continue 名字 執行該操作,break 名字 中斷名字操作

break continue

with 將代碼作用域設置到特定對象中,影響性能,不建議使用

with(location) { 
    var t = search.name;
    var w = hostname;
}
// 等同于
var t = location.seatch.name;
var w = location.hostname;

switch 全等比較(不進行類型轉換),可以合并情況,case可為變量、表達式,

switch?(i)?{
????case?25:?
????????/*?合并兩種情形?*/
????case?35:?
????????alert("25?or?35");
????????break;
????...
}
3.6 函數

function (參數) {函數體}

定義的參數個數可以≠傳入參數個數,適用傳參個數不定執行不同操作

可function acc(a)傳acc( ) 或function acc()傳acc(1,2)

內部可用arguments來訪問參數,如果a對應arguments[0],兩值內存空間獨立,但互相同步

沒有重載:函數沒有簽名,同名函數后定義的生效

讀取這兩個值會訪問相同的內存空間;它們的內存空間是獨立的,但它們的值會同步。但這種影響是單向的:修改命名參數不會改變arguments中對應的值。另外還要記住,如果只傳入了一個參數,那么為arguments[1]設置的值不會反應到命名參數中。這是因為arguments對象的長度是由傳入的參數個數決定的,不是由定義函數時的命名參數的個數決定的。

書中:修改命名參數不會改變arguments中對應的值。 實際改變arguments[0]會同步a ,改變a也會同步argumenets[0]

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/104440.html

相關文章

  • 004-讀書筆記-JavaScript高級程序設計 基本概念(下)

    摘要:操作符,會將數值改變正數變成負數負數變成正數。同時,也說明了,使用兩個邏輯非操作符和的操作結果相同。操作符得到的是余數。不相等操作符有兩種。 這篇筆記的內容對應的是《JavaScript高級程序設計(第三版)》中的第三章。 1.操作符 1-1 一元操作符 遞增和遞減操作符 遞增和遞減操作符有兩個 ++ 和 --。一元操作符使用的時候,可以前置也可以后置。由于兩個操作方式類似,先只說明 ...

    nevermind 評論0 收藏0
  • javascript高級程序設計筆記:內存與執行環境

    摘要:因此,所有在方法中定義的變量都是放在棧內存中的當我們在程序中創建一個對象時,這個對象將被保存到運行時數據區中,以便反復利用因為對象的創建成本通常較大,這個運行時數據區就是堆內存。 上一篇:《javascript高級程序設計》筆記:繼承近幾篇博客都會圍繞著圖中的知識點展開 showImg(https://segmentfault.com/img/bVY0C4?w=1330&h=618);...

    fuyi501 評論0 收藏0
  • JavaScript高級程序設計筆記基本概念(三)

    摘要:數據類型中有種簡單數據類型也稱為基本數據類型和。因為特殊值被認為是一個空的對象引用。盡管和有這樣的關系,但它們的用途完全不同。這樣做不僅可以體現作為空對象指針的慣例,而且也有助于進一步區分和。 數據類型 ECMAScript中有5種簡單數據類型(也稱為基本數據類型):undefined,null,boolean,number和string。 typeof typeof null會返回o...

    jas0n 評論0 收藏0
  • JavaScript高級程序設計學習筆記三(基本語法)

    摘要:數據類型中有種簡單數據類型也稱為基本數據類型和。在中非空字符串,非零數字,任意對象,都被認為。而空字符串,和,,認為是。用于表示整數和浮點數。標識符由數字字母下劃線美元符組成,但首字母不能是數字。變量方法對象命名推薦駝峰法。 JavaScript語法 一.語法簡介 因為JavaScript語法和Java等語法非常類似。所以只是簡單介紹一下。 大小寫 JavaScript是大小寫敏感的語...

    Mike617 評論0 收藏0
  • JavaScript高級程序設計》讀書筆記

    摘要:為了每個對象都能通過來檢測,需要以或者的形式來調用,傳遞要檢查的對象作為第一個參數,稱為。對象都是動態的,這就意味著每次訪問對象,都會運行一次查詢。是語言中立的用于訪問和操作和文檔。 一、第三章 基本概念: 1.理解參數 1.1 可以向函數中傳遞任意數量的參數,并且可以通過arguments對象來訪問這些參數。 1.2 arguments對象只是類似數組,它通過length來確定傳進來...

    dayday_up 評論0 收藏0

發表評論

0條評論

ygyooo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<