成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

javascript基礎--變量

chinafgj / 732人閱讀

摘要:的副作用通過聲明的變量不能。需要注意的是中通過和聲明的變量是不存在變量提升情況的。第二個階段是代碼執(zhí)行,函數(shù)表達式和不合格的標識符為聲明的變量被創(chuàng)建。為了避免矛盾和意外的結果,總是指定基數(shù)參數(shù)第二個參數(shù)。

變量 最小全局變量

每個JavaScript環(huán)境有一個全局對象,瀏覽器中就是window對象,Node環(huán)境中是global對象,在函數(shù)外面,this指向window對象,不管是通過var 聲明或者直接創(chuàng)建的變量,都是這個全局對象的屬性。在函數(shù)內部通過var聲明的變量只會成為一個函數(shù)內部局部變量,直接創(chuàng)建的對象還是會成為全局對象的屬性。

this指向調用改函數(shù)的對象
var  myglobal = "hello"; // 不推薦寫法
console.log(this);  // window
console.log(myglobal);  // "hello"
console.log(window.myglobal);  // "hello"
console.log(window["myglobal"]);  // "hello"
console.log(this.myglobal);  // "hello"
(function (){
var mylocal= "world";
           myglobal1 = "!!";
console.log(this);   //window
console.log(mylocal);    //"world"
console.log(window.mylocal);  //undefined
           console.log(this.indow.mylocal);  //undefined
console.log(window.myglobal1);   //"!!"
console.log(myglobal1);   //"!!"
}());

需要注意的地方
創(chuàng)建隱式全局變量 var a = b = 0; 賦值運算從右到左,在此情況下好比var a = (b = 0),b是未聲明的。

var的副作用
通過var 聲明的變量不能delete。
JavaScript中,你可以在函數(shù)的任何位置聲明多個var語句,并且它們就好像是在函數(shù)頂部聲明一樣(變量提升)發(fā)揮作用。需要注意的是ES6中通過let和const聲明的變量是不存在變量提升情況的。

// 例子
myname = "global"; // 全局變量
function func() {
  alert(myname); // "undefined"
  var myname = "local";
  alert(myname); // "local"
}
func();
myname = "global"; // global variable
function func() {
 var myname; // 等同于 -> var myname = undefined;
 alert(myname); // "undefined"
 myname = "local";
 alert(myname); // "local"}
func();

代碼處理分兩個階段,第一階段是變量,函數(shù)聲明,以及正常格式的參數(shù)創(chuàng)建,這是一個解析和進入上下文的階段。第二個階段是代碼執(zhí)行,函數(shù)表達式和不合格的標識符(為聲明的變量)被創(chuàng)建。變量,函數(shù)的聲明永遠在代碼處理的第一步,與代碼編寫位置無關。

定義變量
ECMAScript變量是松散類型的,可以保存任何類型的數(shù)據(jù)。

var message = "hello" ;
   message = 100;    //有效,不推薦

通過var定義局部變量;忽略var會定義全局變量,作為window的屬性;
使用未定義的變量,會報錯,xxx is not defined,對于未定義的變量,只能使用typeof操作符,返回"undefined"。

var message;
等同于
var message = undefined;
非
var message = "undefined";
數(shù)據(jù)類型

5種簡單數(shù)據(jù)類型
Undefined, Null, Boolean, Number, String

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

Null 類型
null值表示一個空對象指針,如果定義的變量準備在將來用于保存對象,那么最好將該變量初始化為null而不是其他值。這樣只要檢查變量的值是否為null,就可以判斷變量是否判斷一個對象的引用。

console.log( null == undefined);   // true
console.log( null === undefined);  // false
obj !=null 可以判斷對象是否為null 或者 為undefined
var obj;
console.log(obj != null)             //false
console.log(obj != undefined)        //false

使用typeof操作符返回字符串

"undefined" 變量未定義或者聲明定義后未賦值。除了typeof操作符,操作未定義的變量會報錯
"boolean" 變量的值是布爾值
"string" 變量的值是字符串
"number" 變量的值是數(shù)值
"object" 變量的值是對象或null
"function" 變量的值是函數(shù)

數(shù)據(jù)類型轉換

隱式類型轉換

Number 類型
如果小數(shù)點后面沒有跟任何數(shù)字,或者浮點數(shù)值本身就是一個整數(shù),那么該浮點數(shù)會被轉換為整數(shù)。保存浮點數(shù)所需的內存空間是整數(shù)的兩倍,如果可能,ECMAScript會不失時機地將浮點數(shù)轉化為整數(shù)。

var floatNum1 = 1.;   // 解析為1
var floatNum2 = 10.0;  // 解析為10

基于IEEE754數(shù)值的浮點計算會產生舍入誤差,不要測試某個特定的浮點數(shù)值。
console.log(0.1 + 0.2 == 0.3); // false

非數(shù)值轉換為數(shù)值

Number();

parseInt(); 指定基數(shù)

parseFloat(); 只解析十進制值,沒有第二個參數(shù)指定基數(shù)

+;

   console.log(+"5");     //5
   console.log(+"5.5");  //5.5
   console.log(+"5w");  //NaN
   console.log(+"ww");  //NaN
   console.log(parseInt("5",10));  // 5
   console.log(parseInt("5.5",10));  //5
   console.log(parseInt("5w",10));  //5
   console.log(parseInt("ww",10));  //NaN
   var month = "06",
     year = "09";
   console.log(parseInt(month));    //6
   console.log(parseInt(month, 10));  //6
   console.log(parseInt(year));   //0
   console.log(parseInt(year, 10));  //9

parseInt()可以從字符串中獲取數(shù)值。當字符串以”0″開頭的時候就有可能會出問題,開頭為”0″的字符串會被當做8進制處理。為了避免矛盾和意外的結果,總是指定基數(shù)(radix)參數(shù)---第二個參數(shù)。

+"08" // 結果是 8
+"08netease"  //NaN
Number("08") // 8
Number("08netease") //NaN
parseInt("08netease", 10) //8   parseInt(arg0, arg1)較慢

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

轉載請注明本文地址:http://m.hztianpu.com/yun/86061.html

相關文章

  • 前端基礎進階(一):內存空間詳細圖解

    摘要:一棧數(shù)據(jù)結構與不同,中并沒有嚴格意義上區(qū)分棧內存與堆內存。引用數(shù)據(jù)類型的值是保存在堆內存中的對象。不允許直接訪問堆內存中的位置,因此我們不能直接操作對象的堆內存空間。為了更好的搞懂變量對象與堆內存,我們可以結合以下例子與圖解進行理解。 showImg(https://segmentfault.com/img/remote/1460000009784102?w=1240&h=683); ...

    _Suqin 評論0 收藏0
  • JavaScript編程全解 —— 基礎

    摘要:函數(shù)式編程最后介紹一下函數(shù)式編程。函數(shù)式編程是一種歷史悠久,而又在最近頗為熱門的話題。函數(shù)式編程在面向對象一詞誕生以前就已經(jīng)存在,不過它在很長一段時間里都被隱藏于過程式編程面向對象也是過程式編程的一種的概念之下。 2.1 JavaScript特點 總結以下幾個特點: 解釋型語言 類似與C和Java的語法結構 動態(tài)語言 基于原型的面向對象 字面量的表現(xiàn)能力 函數(shù)式編程 解釋型語言:...

    CoreDump 評論0 收藏0
  • JavaScript基礎知識

    摘要:用和包裹的內容,稱為字符串。關系運算符用于進行比較的運算符。強制依賴于,非強制依賴于。使用場合全局環(huán)境構造函數(shù)對象的方法閉包閉包是指有權訪問另一個函數(shù)作用域中的變量的函數(shù)。所有全局對象函數(shù)以及變量均自動成為對象的成員。 1 什么是JavaScript JavaScript一種直譯式腳本語言,一種基于對象和事件驅動并具有安全性的客戶端腳本語言;也是一種廣泛應用客戶端web開發(fā)的腳本語言。...

    Code4App 評論0 收藏0
  • Javascript基礎

    摘要:隱式轉換數(shù)字字符串數(shù)字轉換為字符串數(shù)字布爾值轉換為,轉換為字符串布爾值布爾值轉換為或布爾值布爾值和表示一種未知狀態(tài),聲明了但沒有初始化的變量,變量的值時一個未知狀態(tài)。 Javascript基礎 簡介 JavaScript,一種直譯式腳本語言,是一種動態(tài)類型、基于原型的語言,內置支持類別。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶端的腳本語言,最早是在HTM...

    rozbo 評論0 收藏0
  • JavaScript基礎語法 變量 常量 數(shù)據(jù)類型

    摘要:第十六天筆記基礎語法區(qū)分大小寫是一種區(qū)分大小寫的語言的關鍵字變量名函數(shù)名以及任何其他的標識符必須適應一致的大小寫形勢臥龍前端空格和換行并不是的語法內容可有可無建議使用將代碼書寫的更加整潔美觀更有可讀性可選的分號分號可選項語法并不是強制要 第十六天筆記 JavaScript 基礎語法 區(qū)分大小寫 JavaScript是一種區(qū)分大小寫的語言 JavaScript的關鍵字 變量名 函...

    xingpingz 評論0 收藏0
  • Javascript學習總結 - JS基礎系列一

    摘要:變量定義變量使用關鍵字變量名變量名可以任意取名,但要遵循命名規(guī)則變量必須使用字母下劃線或者美元符開始。語法參數(shù)說明在消息對話框中要顯示的文本返回值值。返回值點擊確定按鈕,文本框中的內容將作為函數(shù)返回值。 簡述 本系列將持續(xù)更新Javascript基礎部分的知識,誰都想掌握高端大氣的技術,但是我覺得沒有一個扎實的基礎,我認為一切高階技術對我來講都是過眼云煙,要成為一名及格的前端工程師,必...

    Meils 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<