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

資訊專欄INFORMATION COLUMN

JavaScript基本語法(一)

shiina / 2270人閱讀

摘要:目錄語句變量小結基本語法一是核心知識點的基本語法的第一部分,主要介紹了語句表達式變量和數據類型不包括函數類型的基本知識點,函數類型將在下一章函數二中詳細探討語句程序的執行是由一條條語句組成的每一條語句是為完成特定任務而執行的操作語句當中可以

目錄 1. 語句 2. 變量 3. 小結

JavaScript基本語法(一)是JavaScript核心知識點(ECMAScript)的基本語法的第一部分,主要介紹了:JavaScript語句、表達式、變量和數據類型(不包括函數類型)的基本知識點,函數類型將在下一章《JavaScript函數(二)》中詳細探討;

1.語句

JavaScript程序的執行是由一條條語句組成的;

每一條語句是為完成特定任務而執行的操作;

語句當中可以包含處理數據的表達式,表達式指可得到返回值的計算式;

語句結束的標志是;;

var a = 1;
//執行賦值操作的語句,結束標志的分號
var b = 1+1;
//執行賦值操作的語句,賦值操作符右邊使用了表達式,返回值為2,結束標志是分號
2. 變量

JavaScript是一門弱類型語言,通過使用關鍵字var聲明變量,在賦值時變量的數據類型將根據值的類型動態轉變,從而體現弱類型的特征。

2.1 變量的聲明與賦值

聲明變量但為賦值
變量只聲明不賦值,則變量被賦一個特殊的值undefined

var a;
a//undefined

聲明變量并賦值
變量既聲明又賦值,則產生變量提升,即js引擎在解析階段會將所有的聲明變量提升到當前作用域的頭部;

var a = 1;
//等價于
var a;
a  = 1;

一次性聲明多個變量

var a=1,
    b=2,
    c=3;
2.2 標識符(identifier)

標識符即標識變量的名字,例如var a =1,標識符為a,標識符的命名規則如下:

第一個字符必須是任意Unicode字母、下劃線_或是美元符號$;

其他字符除了運算符外,基本都可以使用;

變量名通常采用camelCase;

ECMA-262規定的關鍵字和保留字不能用作標識符;

2.3 數據類型

JavaScript的數據類型主要包括數值、字符串、布爾值、對象、undefinednull,ES6新增Symbol;

其中,數值、字符串和布爾值可稱為基本數據類型,因為所有的數據都是由這三種最基本的類型的值構成;

對象可稱為復雜數據類型,這里的對象指的是廣義的對象,具體可細分為:

狹義的對象(object)

數組(array)

函數(function)
狹義的對象和數組本質上是基本類型數據的集合,對象是一組無序鍵值對的集合,數組則是一組有序鍵值對(鍵名為從0開始的數字)的集合;

函數在JavaScript當中既是處理數據的方法,更是一種數據類型,既可賦值也能傳參;

數值型
Number類型所有數字以64位浮點數形式存儲(相當于雙精度數值);

各種進制的數字的字面量表示

var a = 12//十進制,12
var b = 0B1//二進制,2
var c = 010 //八進制,8
var d = 0x10 // 十六進制,16
var e = 1.503e7 //科學計數法,15030000

【TIP】
在進行進制間的算術計算時,最終將轉換為十進制;
八進制在嚴格模式下是無效的,會報錯;
數值的范圍
js能表示的數值的最大、最小范圍保存在Number.MAX_VALUENumber.MIN_VALUE當中;
無窮大的數值存儲在Number.POSITIVE_INFINITY,無窮小的數值Number.NEGEITIVE_INFINITY,可用isFinite()函數檢測一個數值是否是無窮數值;

NaN
NaN是一個特殊的數值,表示非數字,主要出現在本來要返回數值的操作數未返回數值的情況下最終拋出一個NaN替代,主要出現場景如下:

//在進行算術運算時,無法將該變量進行數據類型轉換為數值;
var a =1,b= "h"
a-b
//不符合算是運算法則
0/0


【TIP】
使用typeof NaN會拋出"number",證明NaN是一個特殊的數值;
NaN === NaN結果是false,證明,NaN不等于任何值;
可使用isNaN()判斷一個值是否為NaN
數值類型轉換
js提供三個方法將數據轉換為數值類型,包括Number()parseInt()parseFloat();
Number()可將所有類型數據轉換為數值,parseInt()parseFloat()能將字符串轉換為數值;

Number()除了值為undefined、字符串和對象無法轉換為數值的將轉換為NaN,其他都可轉換為數值;


此外,還可以使用算術操作符實現數值類型轉換,作用相同于Number():



在進行字符串轉換為數值時,通常使用parseInt(),該方法的處理原理是忽略字符串前的空格,直到找到第一個非空格字符,
如果第一個字符不是數字字符或負號,則返回NaN,也就是說parseInt("")和parseInt(null)與Number()的返回值不同;



可為parseInt()提供第二個參數,指明要進行轉換的數值的進制



parseFloat()方法的處理原理基本和parseInt()類似,區別在遇到第一個小數點是有效的,第二小數點是無效的,并且直解析十進制;

字符串型
字符串可以看做是放置在""""內的零個或多個字符的數據;

字符串的多種處理方式

//可用單引號也可用雙引號;
var a = "H",
      b = "E";
//長字符串的表示,多適用于HTML模板的表示
var c = "
            
"
//多個字符串的拼接,多適用于添加js代碼
var c = "hello"+"world"+document.getElementById("demo").innerHTML

轉移字符
string數據類型包含一些特殊的字符,用于表示非打印字符或是具有其他用途的字符;

	:制表符

:換行符

:回車
:退格
:反斜杠
":單引號
":雙引號
xnn:以十六進制代碼nn(n為0~F)表示一個字符,如x41表示"A"
unnnn:以十六進制代碼nnnn表示一個Unicode字符

字符串類型轉換
將其他類型數據轉換為字符串型有三種方法:

1.每個字符串均有toString()方法
var a = 11,b;
a.toString()//"11"
b.toString()//對于只聲明未賦值的變量或null,toString()將報錯
2.String()函數對于任何類型的數據均有效
String(null)//"null"
String(undefined)//"undefined"
String(true)//"true"
3.空字符串""+其他類型數據
""+undefined//"undefined"
""+null//"null"

字符串與數組
字符串可以看作字符數組并且具有length屬性,和真實數組不同的是該數組元素只能讀不能寫,并且沒有數組相應的方法;

布爾型
布爾型數據使用truefalse表示,代表真或假,js中所有類型的數據都可以表示成布爾類型的數據;

布爾類型數據轉換
可使用轉型函數Boolean()可將數據轉換為布爾型數據;

除了以下六個數據外,其他類型的布爾值均為true

0
NaN
undefined
null
""
false


布爾型的應用場景
布爾型數據往往結合流程控制語句用于執行條件代碼塊

var message = "hello world"
if(message){
  alter(message)
}

對象類型
對象本質上是由若干鍵值對構成的無序數據的集合;

對象的創建
對象創建的方法包括以下3種:

1.字面量法
var a = {a:1,b:2};
2.Object構造函數法
var b = new Object();
3.Object.create()法
var c = Object.create(null)

以上3種方法,字面量法最為簡潔,Object方法比較正式,Object.create()常用于原型繼承場景;
對象的讀寫操作
對象的鍵或值可看做對象的屬性和方法,屬性代表對象的特性,方法代表對象的能力;

//寫操作
1.直接賦值
var a = {
    name:"teren",
    age:18,
    say:function(){
      console.log("hi")
    }
}
2.動態創建
a.height = 185
a.["weight"] = "60kg"
a.ability = function(){
    return "talk"
}
//讀操作
a.name
a["age"]

查看所有屬性

Object.keys(a)


delete命令
delete命令用于刪除對象的屬性,但delete只能刪除對象本身的屬性,無法刪除繼承的屬性;由var聲明的全局變量默認是無法刪除的;在Object.definedProperty方法的configurable定義為false的也不能刪除;



in運算符
in運算符可用來判斷對象的某個屬性是否存在,但in無法判斷這個屬性是屬于自身的還是繼承的,可用Object.hasOwnProperty()去判斷屬性;

數組
數組是按照一定次序(起始編號為0的數字序列)的一組數據集合;

數組的讀寫操作

數組的length屬性
length屬性是一個動態值,根據數組元素成員個數而發生變化;

length屬性是可寫的,當length屬性的長度大于當前長度,則會向數組添加undefined值,若小于當前長度則會刪減值,可利用這一特性清空數組;

數組的遍歷
數組的遍歷最常用方法為for循環,此外還有forEach、for in和Object.keys();

var arr = [1,2,3,4]
for(var i=0;i
var arr = [1,2,3,4]
arr.foo = true;
for(var key in arr){
   console.log(key)
}
//0
//1
//2
//3
//4
//foo
[注]for...in循環不僅遍歷數組的數字鍵,還會遍歷非數字鍵,所以一般數組的循環遍歷都采用for循環;
var arr = [1,2,3,4]
arr.forEach(function(value,key){
    console.log(key+"."+value)
})
var arr = [1,2,3]
console.log(Object.keys(arr))


類數組對象
js中有些對象被稱作“類數組對象”,樣子看上去很像數組,實際是個對象,并且沒有數組的相關屬性和方法,例如函數的arguments對象、DOM元素集和字符串;


可以使用Array.prototype.slice.call(likeArrayObject)使得類數組對象變成真實的數組;

3.小結

通過整篇文章,我們可以了解到:

JavaScript的代碼是由一條條語句組成的,分號表示一條語句的結束;

語句當中包含處理數據的表達式,表達式是可以得到返回值的計算式;

JavaScript是一門弱類型語言,使用var聲明變量是,變量的數據類型將根據具體值而動態轉變;

JavaScript的數據類型主要包括數值、字符串、布爾型、對象(狹義的對象、數組和函數)、undefined和null六種;

數值、字符串、布爾型又稱為基本數據類型,所有的數據都是由這三種最基本的數據類型構成,對象、數組和函數可稱為復雜數據類型,由基本數據類型構成;

數值類型的數據可通過不同的前綴表示不同進制的數值,也可用科學計數法表示,存在最值和無窮值;NaN是一個特殊的數值,常出現在不符合算術運算法則和無法將變量進行數據類型轉換為數值的運算場景;數值類型轉換的方法包括Number(),parseInt(),parseFloat()+;

字符串可以看做是放在引號內的零個或多個字符的數據;部分特殊字符需要轉移符號反斜杠才能表示出來;字符串可以看做是類數組數據,可使用Array.prototype.slice.call(str)將其轉變為真數組;字符串類型轉換方法包括String(),toString()"";

布爾型的值只有truefalse,js中所有類型的數據都可以表示成布爾類型的數據;布爾類型的數據轉換方法有Boolean()!!;除了false,null,undefined0NaN,""外,其他所有類型的數據的布爾值都是true

對象本質上是若干鍵值對構成的無序數據的集合;對象的創建方法包括{},new ObjectObject.create(null);對象的讀寫操作可使用點操作方括號操作;遍歷對象的方法有for...inObject.keys();可使用delete命令刪除對象的自身屬性,繼承的屬性、var聲明的變量以及在Object.definedProperty({},"name",{value:"teren",configurable:false})也無法刪除;

數組是按照一定次序(起始編號為0的數字序列)的一組數據集合;數組的讀寫操作只能使用方括號操作;遍歷數組的方法包括for,forEachObeject.keys;類數組對象包括HTMLCollection對象、函數的arguments對象以及字符串,可以使用Array.prototype.slice.call(likeArrayObject)使得類數組對象變成真實的數組;

參考資料

《JavaScript高級程序設計(第3版)》

《JavaScript標準參考教程》——阮一峰

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

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

相關文章

  • JavaScript高級程序設計學習筆記三(基本語法)

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

    Mike617 評論0 收藏0
  • 2019年前端學習路線

    摘要:也就是我們常見的瀏覽器以及內置瀏覽器,比如微信打開的大型移動端網頁。這個以微信小程序為例,主要是微信團隊基于前端基礎來做的封裝語法,主要的還是語法。學習路線放一下給大家。前端開發學習不是單一的,內容比較多,同樣應用的場景也非常多。 近兩年來,前端開發工程師越來越火了,2019年已經到來了,很多準備入行前端開發工程師的小伙伴們,不知道準備得怎么樣了呢?有的朋友在想方設法的學習,爭取在年后...

    cfanr 評論0 收藏0
  • 2019年前端學習路線

    摘要:也就是我們常見的瀏覽器以及內置瀏覽器,比如微信打開的大型移動端網頁。這個以微信小程序為例,主要是微信團隊基于前端基礎來做的封裝語法,主要的還是語法。學習路線放一下給大家。前端開發學習不是單一的,內容比較多,同樣應用的場景也非常多。 近兩年來,前端開發工程師越來越火了,2019年已經到來了,很多準備入行前端開發工程師的小伙伴們,不知道準備得怎么樣了呢?有的朋友在想方設法的學習,爭取在年后...

    Miracle_lihb 評論0 收藏0
  • 2019年前端學習路線

    摘要:也就是我們常見的瀏覽器以及內置瀏覽器,比如微信打開的大型移動端網頁。這個以微信小程序為例,主要是微信團隊基于前端基礎來做的封裝語法,主要的還是語法。學習路線放一下給大家。前端開發學習不是單一的,內容比較多,同樣應用的場景也非常多。 近兩年來,前端開發工程師越來越火了,2019年已經到來了,很多準備入行前端開發工程師的小伙伴們,不知道準備得怎么樣了呢?有的朋友在想方設法的學習,爭取在年后...

    zhoutk 評論0 收藏0

發表評論

0條評論

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