javascript
JavaScript基础要点
一、值和類型及運算
?
JavaScript中的六種基本值類型
數字(number)、字符串(string)、布爾值(boolean)、對象(object)、函數(function)、未定義類型(undefined)。
?
NaN
NaN是number類型,但我們用它來表示 “非數值” 。這樣來理解它:對于一個期望返回number類型值的運算,但js卻對表達式中的運算過程很困惑,于是就返回了一個NaN(not a number)給你,用來告訴你這個運算是非法的,結果是不精確的或毫無意義的。
在js中只有一個值不等于其自身,這個值就是NaN!
console.log(typeof NaN); console.log("string" - 1) console.log(NaN == NaN) -------------------------------------------? number
? NaN
? false
?
變量
我們可以把變量想象成許多的觸須,而不是一個箱子。變量中并不包含值,而是會引用這些值。
?
字符串
在對字符串進行比較時,JavaScript按照從左到右逐個比較每個字符對應的ASCII碼值。
?
強制類型轉換
當運算符作用在錯誤類型的值上時,JavaScript會自動將其轉換成自己期望的值,這種操作稱為強制類型轉換。
?
邏輯運算符的短路特性
對于或運算符 || ,從左到右遇見第一個true就發生短路,對于與運算符 && ,從左到右遇見第一個false就發生短路。短路之后立刻就返回這個短路值,不再進行計算后面的表達式。
?
null 和 undefined
對于 == 運算,如果運算符兩側存在null或undefined,那么只有兩側均為null 或undefined時,結果才為true。
console.log(null == 0) console.log(null == undefined) -------------------------------------------? false
? true
?
二、函數
?
定義
定義一個函數就是定義一個普通的變量,只不過變量的類型是函數(function)。例如,下面的代碼定義了一個變量square,引用了一個函數:
var square = function(x){return x * x; } console.log(square(12));---------------------------------------
144
和大多數編程語言一樣,JavaScript也可以這樣聲明函數:
function square(x){return x * x; } console.log(square(12)); ---------------------------------------144
?
可以在任何位置調用已經聲明的函數。這是因為,當代碼執行時,函數的聲明會被移到其作用域的頂端,所有作用域內的函數調用都不會有任何問題。并且在JavaScript中,函數可以嵌套定義。
?
參數 和 作用域
在函數內部創建的變量和參數,都屬于函數的局部變量。
var x = 0; var test = function(x){x = 1; } console.log(x); //可以看到全局變量中x的值并未改變---------------------------------------
0
?
JavaScript對傳入函數的參數數量沒有限制。如果有多余的參數,則它們會被忽略掉;未傳入實值的參數,會被賦值為 undefined。
?
創建一個匿名函數并立刻執行的語法
要用小括號把函數的定義括起來。例如:
(function() {console.log("Hello"); })();?
如果寫成下面這樣,將會報錯:
function() {console.log("Hello"); }(); // SyntaxError?
對于有參數的匿名函數可以這樣寫:
var x = (function(x) {return x*x; })(3); console.log(x); // 9?
?
?三、對象類型:object
對象
object類型的值可以存儲任意類型的屬性,我們可以隨意增刪這些屬性。一種創建對象的方法是使用花括號{}:
/*屬性之間用逗號分隔,屬性定義方式是 propName: propValue,
如果propName不是有效的變量名或數字,則需使用引號將其括起來
var me = {myName: "Mr Hu",myAge: 20,myHobby: ["English", "sing", "travel", "chat"],"I Love You": true, } console.log("my age is " + me.myAge); console.log("I Love You:" + me["I Love You"]); console.log("The type of me is: " + typeof me);
------------------------------------------------------------
? my age is 20
? I Love You:true
? The type of me is: object
?學過python的朋友會發現JavaScript中的對象和Python中的字典十分十分相似。
?
?屬性
在JavaScript中,幾乎所有的值都有屬性,但null和undefined沒有。
訪問屬性的方法有兩種:
?
?= 運算符
我們可以使用 = 運算符來給一個屬性表達式賦值。如果該屬性已經存在,那么新值將替換舊值;如果之前不存在該屬性,則會自動創建該屬性并賦予新值。
?
delete 運算符
我們可以使用 delete 運算符移除目標對象的指定屬性。
?
四、語法
分號
JavaScript并不強制要求在每個語句的結尾加分號,瀏覽器中負責執行js代碼的引擎會自動在每個語句之后加上分號,但這種情況可能會改變程序的語義,導致運行結果與我們的期望不一致。所以建議在每個語句后面手動加上分號。
?
?
?
?
?
?
?
?
?
?代碼編寫規范
建議在循環語句或if語句中,無論其中執行體中是有一行代碼還是多行代碼,都將其包裝在花括號中。
建議使用駝峰命名。
?
轉載于:https://www.cnblogs.com/huwt/p/10597502.html
總結
以上是生活随笔為你收集整理的JavaScript基础要点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ThreadPoolExecutor(一
- 下一篇: python入门---日常经验分享