javascript基礎(chǔ)一

basic

在這里,不想直接照抄某個(gè)網(wǎng)站的文章或者觀點(diǎn),只是標(biāo)注一些注意點(diǎn)

對(duì)大小寫敏感

Comments

// /* */
tips: /* 但是, 你不能, /* 嵌套注釋 */ 語法錯(cuò)誤 */

Declarations

var
let 聲明塊范圍局部變量(block scope local variable),可選擇將其初始化為一個(gè)值。
const 聲明一個(gè)只讀(read-only)的有名字的常量。

聲明變量(Declaring variables)

  • 使用關(guān)鍵詞 var。
  • 直接賦值。
  • 使用關(guān)鍵詞let。
    tips:時(shí)用來聲明語句塊代碼段的局部變量(block scope local variable)。

對(duì)變量求值(Evaluating variables)

用var 和let聲明為賦初值的變量,只會(huì)被設(shè)定為undefined.

tips - undefined值在布爾類型環(huán)境中會(huì)被當(dāng)作false undefiend --> false

  • 數(shù)值類型環(huán)境中undefined值會(huì)被轉(zhuǎn)換為NaN undefiend --> NaN(Not a Number)
  • 空值 null 在數(shù)值類型環(huán)境中會(huì)被當(dāng)作0來對(duì)待 null --> 0
var a = undefined;
var a ;

變量作用域

if(true){
  var  x= 5;
}
console.log(x);//5

if (true) {
  let y = 5;
}
console.log(y); // ReferenceError: y is not defined

tips:ECMAScript 6 之前的JavaScript沒有 語句塊 作用域;相反,語句塊中聲明的變量將成為語句塊所在代碼段的局部變量。不是語句塊作用域,聲明了 x 的那個(gè)函數(shù)(或全局范圍)。

聲明提升

x = undefined;
console.log(x === undefined); 
var x =3;
 
var myvar = "my value";
(function(){
  console.log(myvar);
  var myvar = "local value";
})(); 


var myvar1 = "my value";
(function(){
  var myvar1 ;
  console.log(myvar1);
  var myvar1 = "local value";
})(); 

tips:變量聲明提升了,但是其值賦予undefined.

全局變量

其對(duì)象是window

window.variable
parent.phoneNumber

Constants..常量

const prefix="404";

常量必須被初始化為某個(gè)值。

tips:不能用于變量或函數(shù)名相同的名字來命名常量.

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

識(shí)別7種值

  • 6種是 原型的數(shù)據(jù)類型

Boolean null undefined ,Number , String, Symbol

typeof關(guān)鍵字,查看其類型.
typeof Boolean; //function
typeof null; // object
typeof NULL; // undefiend
typeof undefiend; //undefiend
typeof Number; //function
typeof String;//function
typeof Symbol;//function
typeof Object;//function

通過typeof可以看出,Boolean、Number、String、Symbol的類型是function,null是一個(gè)關(guān)鍵字,用于表示空值的對(duì)象。NULL則是表示一個(gè)變量,值為undefined。Symbol是在 ECMAScript 6 中新添加的類型,一種數(shù)據(jù)類型,它的實(shí)例是唯一且不可改變的。

  • 以及Object對(duì)象

自動(dòng)轉(zhuǎn)換

tips:"37" - 7 ;//30,自動(dòng)轉(zhuǎn)換成數(shù)字
"37"+7;//377,自動(dòng)轉(zhuǎn)換成字符串

converting strings to numbers

parseInt()和parseFloat();

tips:將數(shù)字字符串轉(zhuǎn)換成數(shù)字的方法parseInt(),parseFloat(),

還有單目加發(fā)運(yùn)算符

'1.1'+'1.1';//1.1.1.1
(+'1.1')+(+'1.1');//2.2

字面值(Literals)

字面值是由語法表達(dá)式定義的常量;或,通過由一定字辭組成的語詞表達(dá)式定義的常量

在JavaScript中,你可以使用各種字面值。這些字面值是腳本中按字面意思給出的固定的值,而不是變量。(譯注:字面值是常量,其值是固定的,而且在程序腳本運(yùn)行中不可更改 ).
字面值的類型如下:

  • 數(shù)組字面值(Array literals)
  • 布爾字面值(Boolean literals)
  • 浮點(diǎn)數(shù)字面值(Floating-point literals)
  • 整數(shù)(Intergers)
  • 對(duì)象字面值(Object literals)
  • RegExp literals
  • 字符串字面值(String literals)

數(shù)組字面值(Array literals)

數(shù)組字面值是一個(gè)封閉在方括號(hào)對(duì)([])中的包含有零個(gè)或多個(gè)表達(dá)式的列表,其中每個(gè)表達(dá)式代表數(shù)組的一個(gè)元素。


tips:數(shù)組字面值中的多余逗號(hào)
若你在同一行中連寫兩個(gè)逗號(hào)(,),數(shù)組中就會(huì)產(chǎn)生一個(gè)沒被指定的元素,其初始值是undefined(除了最后逗號(hào)去除的情況)。

var fish = ["Lion",  , "Angel"];
var fish = ["Lion", undefined , "Angel"];//等同

var fish = [ ,  ,  'Alison',  'Gavin',   ]
var fish = [ undefiend, undefiend, 'Alison', 'Gavin'  ]//最后的逗號(hào)會(huì)去掉
而且他倆的長度一樣,都是.length = 4
var coffees = ['a', , 'b',  ,  , ];
var coffees = ['a' , undefined, 'b' , undefined, undefiend ];
console.log(coffees.length);//5

浮點(diǎn)數(shù)字面值(Floating-point literals)

語法:[(+|-)][digits][.digits][(E|e)[(+|-)]digits]


對(duì)象字面值(Object literals)

對(duì)象字面值是封閉在花括號(hào)對(duì)({})中的一個(gè)對(duì)象的零個(gè)或多個(gè)"屬性名-值"對(duì)的(元素)列表。

var sales = "tomacat";
function carType(name){
  return (name === 'hone')? name : "sorry";
};

var car ={myCar:  "staturn", getCar: carType('hone'),  special: sales};
console.log(car.myCar);//staturn
console.log(car.getCar);//hone
console.log(car.special); // tomacat 

tips:

  • 可以使用數(shù)字或字符串字面值作為屬性名,或者在另一個(gè)字面內(nèi)值嵌套一個(gè)字面值。
var carr = {mycara: {a: 'Saab', b: 'Jeep'}, 7: 'Mazda'};
  • 對(duì)象屬性名可以是任意字符串,包括空串。如果對(duì)象屬性名字不是合法的javascript標(biāo)識(shí)符,它必須用""包裹。屬性的名字不合法,那么便不能用.訪問屬性值,而是通過類數(shù)組標(biāo)記("[]")訪問和賦值。
    這里說的是,不是合法字符串,都需要通過類數(shù)組標(biāo)記來訪問,不能通過' . 屬性'來訪問。
var unus = {
  "": "an empty String",
  "!": "Bang"
}
//console.log(unus."");//SyntaxError: missing name after . operator
console.log(unus[""]);
//console.log(unus.!);//SyntaxError: missing name after . operator
console.log(unus["!"]);

var foo ={a : 'alpha', 2: 'two'};
console.log(foo.a); //alpha
console.log(foo[2]);//two

console.log(foo.a);
//console.log(foo.2);//SyntaxError: missing ) after argument list
console.log(foo[a]);//undefined,并不是Error: a is not defined
console.log(foo[2]);

console.log(foo["a"]);
console.log(foo["2"]);

RegExp字面值

一個(gè)正則表達(dá)式是字符被斜線圍成的表達(dá)式。var foo =/asd+as/

字符串字面值(String literals)

字符串字面值可以包含有零個(gè)或多個(gè)字符,由雙引號(hào)(")對(duì)或單引號(hào)(‘)對(duì)包圍。

tips:字符串字面值后自動(dòng)轉(zhuǎn)換為一個(gè)臨時(shí)字符串對(duì)象,就可以調(diào)用對(duì)象的方法,然后廢棄掉那個(gè)臨時(shí)的字符串變量。

參考文獻(xiàn):https://developer.mozilla.org/zh-CN/

PS: 若你覺得可以、還行、過得去、甚至不太差的話,可以“關(guān)注”一下,就此謝過!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,628評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,642評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,444評(píng)論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,948評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,185評(píng)論 0 287
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,794評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,418評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,671評(píng)論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,414評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,750評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容

  • 1、JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么? ...
    字母31閱讀 129評(píng)論 0 0
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,531評(píng)論 1 51
  • 變量 變量名必須以 字母、$和 _ 符號(hào)開頭,并且不能包含空格,此外變量名支持大小寫 javaScript 是一種...
    TianBai閱讀 528評(píng)論 0 1
  • 基本內(nèi)置類型 算術(shù)類型字符整型布爾值浮點(diǎn)數(shù) 空類型(void) 算術(shù)類型 帶符號(hào)類型和無符號(hào)類型int、short...
    2625K閱讀 3,232評(píng)論 0 1
  • 1993 故事還得從2030講起,我認(rèn)識(shí)他那么久,基本沒有聽他提起過1993。2030說他自己是個(gè)新時(shí)代的浪子,游...
    錢琪閱讀 492評(píng)論 0 2