最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

需要牢記的JavaScript基礎(chǔ)知識

 更新時間:2016年09月25日 10:43:37   投稿:hebedich  
本文給大家分享的是在學(xué)習(xí)JavaScript中比較容易記錯又非常實用的基礎(chǔ)知識,希望大家能夠喜歡。

聲明(Declarations)

undefined值在布爾類型環(huán)境中會被當(dāng)作false。

數(shù)值類型環(huán)境中undefined值會被轉(zhuǎn)換為NaN。

對一個空變量求值時,空值 null 在數(shù)值類型環(huán)境中會被當(dāng)作0來對待,而布爾類型環(huán)境中會被當(dāng)作false

JavaScript 變量感覺上是被“提升”或移到了所有函數(shù)和語句之前。提升后的變量將返回 undefined 值,所以即使在使用或引用某個變量之后存在聲明和初始化操作,這個被提升的引用仍將得到 undefined 值。

由于存在變量聲明提升,一個函數(shù)中所有的var語句應(yīng)盡可能地放在接近函數(shù)頂部的地方。這大大地提升了程序代碼的清晰度。

(在 ECMAScript 2015 中,let(const)將不會提升變量到代碼塊的頂部。因此,在變量聲明之前引用這個變量,將拋出錯誤ReferenceError。這個變量將從代碼塊一開始就處在一個“暫時性死區(qū)”,直到這個變量被聲明為止。)

對于函數(shù),只有函數(shù)聲明會被提升到頂部,不包括函數(shù)表達(dá)式。

/* 函數(shù)聲明 */
foo(); // "bar"  
function foo() {
 console.log("bar");
}  

/* 函數(shù)表達(dá)式  表達(dá)式定義的函數(shù),成為匿名函數(shù)。匿名函數(shù)沒有函數(shù)提升。*/  
baz(); // TypeError: baz is not a function
//此時的"baz"相當(dāng)于一個聲明的變量,類型為undefined。
由于baz只是相當(dāng)于一個變量,因此瀏覽器認(rèn)為"baz()"不是一個函數(shù)。
var baz = function() {
 console.log("bar2");
};

全局對象是 window,你可以通過指定 window 或 frame 的名字,從一個 window 或 frame 訪問另一個 window 或 frame 中聲明的變量。例如,設(shè)想一個叫 phoneNumber 的變量在文檔里被聲明,你可以在子框架里用 parent.phoneNumber 來引用它。

常量(Constants)

在同一作用域中,不能用與變量或函數(shù)同樣的名字來命名常量。然而,對象屬性是不受保護的,所以下面的語句執(zhí)行沒有問題。

const MY_OBJECT = {"key": "value"};
MY_OBJECT.key = "otherValue";

數(shù)據(jù)結(jié)構(gòu)和類型

六種是 原型 的數(shù)據(jù)類型 以及 Object 對象

  1. Boolean. 布爾值,true 和 false.
  2. 一個表明 null 值的特殊關(guān)鍵字。 JavaScript 是大小寫敏感的,因此 null 與 Null、NULL或其他變量完全不同。
  3. 變量未定義時的屬性。
  4. Number. 表示數(shù)字,例如: 42 或者 3.14159。
  5. String. 表示字符串,例如:”Howdy”
  6. Symbol ( 在 ECMAScript 6 中新添加的類型).。一種數(shù)據(jù)類型,它的實例是唯一且不可改變的。

Objects 和 functions 是本語言的其他兩個基本要素。你可以將對象視為存放值的命名容器,而將函數(shù)視為你的應(yīng)用程序能夠執(zhí)行的過程(procedures)。

在涉及加法運算符(+)的數(shù)字和字符串表達(dá)式中,JavaScript 會把數(shù)字值轉(zhuǎn)換為字符串。

x = "The answer is " + 42 // "The answer is 42"
y = 42 + " is the answer" // "42 is the answer"

在涉及其它運算符(譯注:如下面的減號'-‘)時,JavaScript語言不會把數(shù)字變?yōu)樽址@纾ㄗg注:第一例是數(shù)學(xué)運算,第二例是字符串運算):

"37" - 7 // 30
"37" + 7 // "377"

字符串轉(zhuǎn)換為數(shù)字(converting strings to numbers)

parseInt()和parseFloat()

將字符串轉(zhuǎn)換為數(shù)字的另一種方法是使用單目加法運算符。

"1.1" + "1.1" = "1.11.1"
(+"1.1") + (+"1.1") = 2.2  // 注:加入括號為清楚起見,不是必需的。

對象屬性名字可以是任意字符串,包括空串。如果對象屬性名字不是合法的javascript標(biāo)識符,它必須用””包裹。屬性的名字不合法,那么便不能用.訪問屬性值,而是通過類數(shù)組標(biāo)記(“[]”)訪問和賦值。

var unusualPropertyNames = {
 "": "An empty string",
 "!": "Bang!"
}
console.log(unusualPropertyNames."");  // 語法錯誤: Unexpected string
console.log(unusualPropertyNames[""]); // An empty string
console.log(unusualPropertyNames.!);  // 語法錯誤: Unexpected token !
console.log(unusualPropertyNames["!"]); // Bang!

注意:

var foo = {a: "alpha", 2: "two"};
console.log(foo.a);  // alpha
console.log(foo[2]);  // two
//console.log(foo.2); // Error: missing ) after argument list
//console.log(foo[a]); // Error: a is not defined
console.log(foo["a"]); // alpha
console.log(foo["2"]); // two

在ES2015,對象字面值擴展支持在創(chuàng)建時設(shè)置原型,簡寫foo:foo分配,定義方法,加工父函數(shù)(super calls),計算屬性名(動態(tài))。總之,這些也帶來了對象字面值和類聲明緊密聯(lián)系起來,讓基于對象的設(shè)計得益于一些同樣的便利。

var obj = {
  // __proto__
  __proto__: theProtoObj,
  // Shorthand for ‘handler: handler'
  handler,
  // Methods
  toString() {
   // Super calls
   return "d " + super.toString();
  },
  // Computed (dynamic) property names
  [ 'prop_' + (() => 42)() ]: 42
};

能在JavaScript的字符串中使用的···特殊字符···

轉(zhuǎn)義字符

// 引號轉(zhuǎn)義
var quote = "He read /"The Cremation of Sam McGee/" by R.W. Service.";
// 轉(zhuǎn)義反斜線
var home = "c://temp";
// 轉(zhuǎn)義換行 一條語句拆成多行書寫
var str = "this string /
is broken /
across multiple/
lines."
console.log(str);  // this string is broken across multiplelines.
// Javascript沒有“heredoc”語法,但可以用行末的換行符轉(zhuǎn)義和轉(zhuǎn)義的換行來近似實現(xiàn) 
var poem = 
"Roses are red,/n/
Violets are blue./n/
I'm schizophrenic,/n/
And so am I."

相關(guān)文章

  • Javascript入門學(xué)習(xí)第一篇 js基礎(chǔ)

    Javascript入門學(xué)習(xí)第一篇 js基礎(chǔ)

    這是我看了DOM編程藝術(shù),悟透JavaScript,javascript權(quán)威指南5做的筆記,我資質(zhì)不深,不能寫出高深的文章, 如果你覺得筆記寫得不好,可以不看我以后的。這篇文章就當(dāng)作浪費你幾分鐘。
    2008-07-07
  • php與js的區(qū)別是什么

    php與js的區(qū)別是什么

    php與js的區(qū)別包括:類型轉(zhuǎn)換的不同、實形參的不同、數(shù)據(jù)類型的不同等等,更多參考下文,希望對大家有所幫助
    2013-08-08
  • 老生常談onBlur事件與onfocus事件(js)

    老生常談onBlur事件與onfocus事件(js)

    下面小編就為大家?guī)硪黄仙U刼nBlur事件與onfocus事件(js)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • JavaScript 學(xué)習(xí)筆記之變量及其作用域

    JavaScript 學(xué)習(xí)筆記之變量及其作用域

    前篇文章我們介紹了學(xué)習(xí)javascript所需要的基礎(chǔ)中的基礎(chǔ)知識,今天我們來更進一步,學(xué)習(xí)下javascript變量及其作用域,希望小伙伴們通過本文能夠有所得。
    2015-01-01
  • JavaScript中BOM和DOM詳解

    JavaScript中BOM和DOM詳解

    本文主要講解了JavaScript中BOM和DOM,BOM為瀏覽器對象模型,DOM 為文檔對象模型,兩者之間有很大的區(qū)別,感興趣的小伙伴可以閱讀一下這篇文章,了解相關(guān)內(nèi)容
    2021-08-08
  • 一起來學(xué)習(xí)一下JavaScript的事件流

    一起來學(xué)習(xí)一下JavaScript的事件流

    這篇文章主要為大家詳細(xì)介紹了JavaScript的事件流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • 淺談JavaScript函數(shù)節(jié)流

    淺談JavaScript函數(shù)節(jié)流

    這篇文章主要簡單介紹了JavaScript函數(shù)節(jié)流的相關(guān)知識,有相同需求的小伙伴們可以仔細(xì)閱讀下
    2014-12-12
  • js取0-9隨機取4個數(shù)不重復(fù)的數(shù)字代碼實例

    js取0-9隨機取4個數(shù)不重復(fù)的數(shù)字代碼實例

    這篇文章主要介紹了js取0-9隨機取4個數(shù)不重復(fù)的數(shù)字,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • 利用javascript數(shù)組長度循環(huán)數(shù)組內(nèi)所有元素

    利用javascript數(shù)組長度循環(huán)數(shù)組內(nèi)所有元素

    javascript循環(huán)數(shù)組內(nèi)所有元素代碼學(xué)習(xí),大家參考使用吧
    2013-12-12
  • javascript開發(fā)技術(shù)大全-第3章 js數(shù)據(jù)類型

    javascript開發(fā)技術(shù)大全-第3章 js數(shù)據(jù)類型

    字符串類型(string) :由unicode字符、數(shù)字、標(biāo)點符號組成,在javascript中沒有char字符類型 ,即使只表示一個字符,也必須用到字符串
    2011-07-07

最新評論

阿拉善盟| 宁武县| 汉寿县| 连州市| 旺苍县| 大同县| 兴化市| 张家界市| 聂拉木县| 沙湾县| 伊春市| 舞阳县| 汶川县| 洪雅县| 静海县| 同德县| 杭州市| 贺兰县| 双桥区| 遵义县| 尚志市| 邓州市| 陇南市| 梅河口市| 沁阳市| 武陟县| 濉溪县| 策勒县| 玉门市| 岑溪市| 襄垣县| 东明县| 凯里市| 平乡县| 龙泉市| 南岸区| 和政县| 会泽县| 凌云县| 天祝| 抚宁县|