03-JavaScript基礎(chǔ)-數(shù)據(jù)類型,操作符,字符類型轉(zhuǎn)換

一共有六種數(shù)據(jù)類型:簡(jiǎn)單數(shù)據(jù)類型:number類型 字符串類型 布爾類型 null和undefined
復(fù)雜數(shù)據(jù)類型:數(shù)組(array)和對(duì)象(object)

number類型:

浮點(diǎn)數(shù):
var num = 0.1;
科學(xué)計(jì)數(shù)法:

//當(dāng)一次數(shù)字很大的時(shí)候柒竞,可以用科學(xué)計(jì)數(shù)法來(lái)表示
var num = 5e+5;  //5乘以10的5次方
var num = 3e-3;//3乘以10的-3次方

  • 科學(xué)計(jì)數(shù)法
//在進(jìn)行浮點(diǎn)數(shù)運(yùn)算的時(shí)候,可能會(huì)出現(xiàn)精度丟失的問(wèn)題
0.1 + 0.2 = 0.30000000000000004;
0.2 + 0.2 = 0.4;
//盡量少用浮點(diǎn)數(shù)進(jìn)行運(yùn)算播聪,不要讓浮點(diǎn)數(shù)進(jìn)行比較能犯。

解決辦法 : 根據(jù)小數(shù)點(diǎn)后面的位數(shù)量 乘以對(duì)應(yīng)的整數(shù);
0.1 + 0.2  ==> (0.1*10+0.2*10) / 10 = 0.3
0.01 + 0.02 呢?

字符串類型

字符串長(zhǎng)度:

var str = "dadasdafsfas";
console.log(str.length);
  • 引號(hào)可以嵌套,但是只能相互嵌套,不能嵌套自己 (單雙號(hào)相互嵌套)
  • 通過(guò)轉(zhuǎn)義符

轉(zhuǎn)義字符串:


轉(zhuǎn)義字符.png

字符串的拼接:

  • +號(hào)具有字符串拼接的功能,他可以將兩個(gè)字符串拼接成一個(gè)字符串
  • +號(hào)同時(shí)具有算術(shù)的功能犬耻,它能將兩個(gè)數(shù)字進(jìn)行相加
  • +號(hào)兩邊有一個(gè)字符串踩晶,則是字符串拼接功能,如果兩個(gè)都是數(shù)字枕磁,則是算數(shù)功能
/ 第一種情況 : 字符串 + 字符串
var a = "hello";
var b = "itcast";
console.log(a + b);//字符串拼接功能

// 第二種情況 : 數(shù)值 + 數(shù)值
var a = 100;
var b = 100;
console.log(a + b);//加法

// 第三種情況 : 字符串 + 數(shù)值
var a = 'abc';
var b = 100;
console.log(a + b);//字符串拼接功能

布爾類型:true 和 false

//布爾類型只有兩個(gè)值
true:表示真
false:表示假

注意:

? 1. 區(qū)分大小寫渡蜻,不要寫成True或者是False了

? 2. 'true' 和 true , 前者是字符串類型

null 和 undefined

undefined表示一個(gè)沒(méi)有賦值的變量
null表示一個(gè)空的值, ( 例如 : 獲取一個(gè)元素,id寫錯(cuò)了,獲取不到,返回一個(gè)null)


undefined和null的區(qū)別.png

字面量賦值 與 變量賦值

  • 字面量賦值,字面量也叫直接量计济,一眼能夠識(shí)別是什么類型的變量茸苇,比如11, "abc", true, false, undefined, null等都是字面量,可以直接會(huì)使用沦寂。
  • 變量賦值:瀏覽器必須要經(jīng)過(guò)聲明之后学密,才認(rèn)識(shí)變量,如果沒(méi)有聲明传藏,直接使用變量是會(huì)報(bào)錯(cuò)的腻暮。

操作符

  • 算術(shù)運(yùn)算符


    算術(shù)運(yùn)算符.png

賦值運(yùn)算符

賦值運(yùn)算符有: = , +=, -=, *=, /=, %=

var num = 10;
num += 1;   //num = num + 1;
num -= 1;   //num = num - 1;
num *= 2;   //num = num * 2;
num /= 2;   //num = num / 2;
num % = 2;  //num = num % 2;

一元運(yùn)算符

先自增:++i
后自增:i++

異同點(diǎn) :
1. 相同點(diǎn) : 代碼執(zhí)行之后, 數(shù)值都會(huì) + 1
2. 不同點(diǎn) : 就是在自增的時(shí)候使用就會(huì)出現(xiàn)不同

//先自增:
var num = 1;
console.log(++num); //先自增:表示先加1,后返回值

//后自增:
var num = 1;
console.log(num++);// 后自增:表示先返回值毯侦,后+1

自減運(yùn)算符:--

  • 先自減:--i
  • 后自減:i--

邏輯運(yùn)算符

  • &&:與運(yùn)算符哭靖,表示且,只有當(dāng)兩個(gè)操作數(shù)都為true的時(shí)候侈离,結(jié)果才是true
  • ||:或運(yùn)算符试幽,表示或,只要有其中一個(gè)操作數(shù)是true,結(jié)果就是true
  • !:非運(yùn)算符卦碾,取反
console.log( true && true );
console.log( false && true );
console.log( true && false );
console.log( false && false );

console.log( true || true );
console.log( false || true );
console.log( true || false );
console.log( false || false );

console.log(!true);
console.log(!false);

總結(jié) : 
&&  翻譯 : 一個(gè)為真,且,,另外一個(gè)也為真  => 才為真
1. 兩者都為true,才為true
2. 前者為true,,決定權(quán)在后者

||  翻譯 : 一個(gè)為真,或者另外一個(gè)為真 => 真
1. 兩者有一個(gè)為true,結(jié)果就為true
2. 前者為false,,決定權(quán)在后者

比較運(yùn)算符

< >= <= == === != !==

var a = 5;
var b = 6;
console.log(a > b);//大于
console.log(a < b);//小于
console.log(a >= b);//大于等于
console.log(a <= b);//小于等于

console.log(a == b); //相等铺坞,只比較值起宽,不比較類型
console.log(a === b); //全等,比較類型和值
console.log(a != b); // 不等济榨, 只判斷值燎含,不判斷類型
console.log(a !== b); // 不全等 判斷值,且判斷類型

注意 : 
 數(shù)字類型比較和字符串比較是由區(qū)別的 
 1. 數(shù)字比較 : 24>3;   比較數(shù)字大小
 2. 字符串比較 : '24' < '3'   比較首字母大小
 3. 字符串和數(shù)字混合比較 : 比較數(shù)字內(nèi)容大小

運(yùn)算符優(yōu)先級(jí)

  • ()優(yōu)先級(jí)最高
  • 一元運(yùn)算符 ++/--/!
  • 算數(shù)運(yùn)算符 (先*/%, 后+-)
  • 比較運(yùn)算符 (> < >= <= )再(== === != !==)
    -邏輯運(yùn)算符(先&&后||)

數(shù)據(jù)類型轉(zhuǎn)換

查看數(shù)據(jù)類型

var num = 11;
console.log(typeof num);
num = "abc";
console.log(typeof num);

轉(zhuǎn)換成 數(shù)值 -number

console.log(Number('55'));
Number()可以把任意值轉(zhuǎn)換成數(shù)值類型腿短,但是如果字符串中有不是數(shù)字的字符屏箍,返回NaN
  • parseInt() 和 parseFloat()
- parseInt()  把整數(shù)或者小數(shù)都轉(zhuǎn)化為整數(shù);
- parseFloat() 把整數(shù)轉(zhuǎn)化整數(shù),把小數(shù)轉(zhuǎn)化為小數(shù)
var num1 = parseInt("12");  // 12
var num1 = parseInt("12.3"); //12
var num1 = parseFloat("12"); //12
var num1 = parseFloat("12.3");//12.3

var num1 = parseInt("12.3abc");  // 返回12,如果第一個(gè)字符是數(shù)字會(huì)解析知道遇到非數(shù)字結(jié)束
var num2 = parseInt("abc123");   // 返回NaN橘忱,如果第一個(gè)字符不是數(shù)字或者符號(hào)就返回NaN

轉(zhuǎn)換成 字符串類型 - string

String ( ) 因?yàn)閚ull 和undefined 沒(méi)有toString()方法 可以String可以用于null 和 undefined

var num = 5;
num = String(num);
console.log(num);

toString ( )

var num = 5;
console.log(num.toString());// 把數(shù)值5變成字符串5
//將來(lái)所有的數(shù)據(jù)都會(huì)有toString()方法赴魁,除了null和undefined

轉(zhuǎn)換成布爾類型 - boolean

  • 其中 0, "", undefined,null钝诚, NaN颖御,這幾個(gè)值會(huì)轉(zhuǎn)換成false,其他值都會(huì)轉(zhuǎn)換成true
  • 1 在布爾值中代表 true 0代表false

NaN

NaN: not a number, 表示一個(gè)非數(shù)字

在js中凝颇,NaN用來(lái)表示一個(gè)非數(shù)字的特殊值潘拱,當(dāng)發(fā)現(xiàn)無(wú)法進(jìn)行運(yùn)算時(shí),js不會(huì)報(bào)錯(cuò)拧略,而是會(huì)返回一個(gè)NaN

NaN的注意事項(xiàng):

  • NaN的類型是number類型的芦岂,表示一個(gè)非數(shù)字
  • NaN不等于任何值,包括NaN本身
  • 通過(guò)isNaN()可以判斷是否是一個(gè)數(shù)字垫蛆,返回false的時(shí)候禽最,表示是一個(gè)數(shù)字。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末袱饭,一起剝皮案震驚了整個(gè)濱河市川无,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌虑乖,老刑警劉巖懦趋,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異疹味,居然都是意外死亡仅叫,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門佛猛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)惑芭,“玉大人,你說(shuō)我怎么就攤上這事继找。” “怎么了逃沿?”我有些...
    開(kāi)封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵婴渡,是天一觀的道長(zhǎng)幻锁。 經(jīng)常有香客問(wèn)我,道長(zhǎng)边臼,這世上最難降的妖魔是什么哄尔? 我笑而不...
    開(kāi)封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮柠并,結(jié)果婚禮上岭接,老公的妹妹穿的比我還像新娘。我一直安慰自己臼予,他們只是感情好鸣戴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著粘拾,像睡著了一般窄锅。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缰雇,一...
    開(kāi)封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天入偷,我揣著相機(jī)與錄音,去河邊找鬼械哟。 笑死疏之,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的暇咆。 我是一名探鬼主播体捏,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼糯崎!你這毒婦竟也來(lái)了几缭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤沃呢,失蹤者是張志新(化名)和其女友劉穎年栓,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體薄霜,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡某抓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了惰瓜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片否副。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖崎坊,靈堂內(nèi)的尸體忽然破棺而出备禀,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布曲尸,位于F島的核電站赋续,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏另患。R本人自食惡果不足惜纽乱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昆箕。 院中可真熱鬧鸦列,春花似錦、人聲如沸鹏倘。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)第股。三九已至应民,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間夕吻,已是汗流浹背诲锹。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涉馅,地道東北人归园。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像稚矿,于是被迫代替她去往敵國(guó)和親庸诱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

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