第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Javascript中的類型強(qiáng)制到底是什么?

Javascript中的類型強(qiáng)制到底是什么?

一只斗牛犬 2019-07-09 13:19:22
Javascript中的類型強(qiáng)制到底是什么?Javascript中的類型強(qiáng)制到底是什么?例如,關(guān)于使用==而不是===?
查看完整描述

3 回答

?
喵喵時(shí)光機(jī)

TA貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊

類型強(qiáng)制是指當(dāng)運(yùn)算符的操作數(shù)是不同的類型時(shí),其中一個(gè)操作數(shù)將被轉(zhuǎn)換為另一個(gè)操作數(shù)類型的“等效”值。例如,如果您這樣做:

boolean == integer

布爾操作數(shù)將轉(zhuǎn)換為整數(shù):false0true然后將這兩個(gè)值進(jìn)行比較。

但是,如果使用非轉(zhuǎn)換比較運(yùn)算符,則===,沒有發(fā)生這種轉(zhuǎn)換。當(dāng)操作數(shù)為不同類型時(shí),此運(yùn)算符將返回false,并且只比較相同類型的值。


查看完整回答
反對 回復(fù) 2019-07-09
?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

讓我們從一個(gè)簡短的介紹類型系統(tǒng)開始,我認(rèn)為這將幫助您理解類型強(qiáng)制的一般概念。

語言的類型系統(tǒng)定義了規(guī)則,這些規(guī)則告訴我們在該語言中存在哪些類型的數(shù)據(jù),以及如何使用不同的運(yùn)算符組合它們。例如,其中一條規(guī)則可能指定加號(+)運(yùn)算符僅對數(shù)字起作用。這些規(guī)則的存在主要是為了防止你朝自己的腳開槍。但是,當(dāng)程序員在程序中違反這個(gè)規(guī)則時(shí)會發(fā)生什么呢?沒有什么能阻止程序員輸入{} + {}“hello” + 5在一個(gè)程序中,即使語言認(rèn)為這些表達(dá)沒有任何意義。

在這些情況下最終會發(fā)生什么取決于語言對其類型規(guī)則的嚴(yán)格程度。

語言類型系統(tǒng)通常持有兩種觀點(diǎn)中的一種,即你違反了它的規(guī)則:

  1. 說“嘿,這可不酷!”并立即使你的程序崩潰。
  2. 說“我不能用{}…做任何事但是我可以用數(shù)字來做一些事情“并嘗試將{}轉(zhuǎn)換成一個(gè)數(shù)字。

對其規(guī)則采取第一立場的類型系統(tǒng)的語言通常被稱為“強(qiáng)類型”語言。他們嚴(yán)格不讓你違反規(guī)則。采用第二種方法(如JavaScript)的語言被稱為“弱類型”或“松散類型”語言。當(dāng)然,您可以違反規(guī)則,但當(dāng)它強(qiáng)制轉(zhuǎn)換您在程序中描述的數(shù)據(jù)類型以符合其規(guī)則時(shí),不要感到驚訝。這種行為稱為…(鼓卷).。類型強(qiáng)制.

現(xiàn)在讓我們看看JavaScript中的一些例子。首先,讓我們從一個(gè)不會導(dǎo)致類型強(qiáng)制的表達(dá)式開始。

5 + 5

使用帶有兩個(gè)數(shù)字的+運(yùn)算符,這是完全有效的。該程序?qū)⑻幚?的意思是“添加”,并高興地添加這兩個(gè)數(shù)字。不需要轉(zhuǎn)換。

但是…呢?

[] + 5

哦。在JavaScript中,+可以表示添加兩個(gè)數(shù)字或連接兩個(gè)字符串。在這種情況下,我們既沒有兩個(gè)數(shù)字,也沒有兩個(gè)字符串。我們只有一個(gè)數(shù)字和一個(gè)對象。根據(jù)JavaScript的類型規(guī)則,這是沒有邏輯意義的。因?yàn)樗從氵`反了它的規(guī)則,而不是崩潰,它試圖使它的意義無論如何。那么JavaScript是做什么的呢?嗯,它知道如何連接字符串,所以它將[]和5轉(zhuǎn)換成字符串,結(jié)果是字符串值“5”。

比較操作符是怎么處理的?=====?為什么有兩個(gè)比較操作符?

==不受JavaScript類型轉(zhuǎn)換行為的影響。表達(dá)式,如5 == “5”將計(jì)算為true,因?yàn)镴avaScript將嘗試轉(zhuǎn)換其中之一,以便比較相同類型的數(shù)據(jù)。

在許多情況下,這是不可取的,因?yàn)槟赡芟胫滥容^的某些數(shù)據(jù)是否具有不同的類型,這樣您就可以決定如何處理它。那是===接線員進(jìn)來。當(dāng)你使用===,則不會發(fā)生類型轉(zhuǎn)換。因此,表達(dá)5 === “5”會被評估為假的。


查看完整回答
反對 回復(fù) 2019-07-09
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

在Python中,如果試圖添加字符串和整數(shù),則會得到一個(gè)錯(cuò)誤:

>>> "hi" + 10Traceback (most recent call last):
  File "<stdin>", line 1, in <module>TypeError: cannot concatenate 'str' and 'int' objects

然而,在JavaScript中,您不需要。10獲取轉(zhuǎn)換為字符串:

> "hi" + 10"hi10"

“類型強(qiáng)制”只是上面的一個(gè)花哨的用詞錯(cuò)誤。實(shí)際上,這兩種語言都沒有Java或C或其他靜態(tài)類型系統(tǒng)的“類型”。語言如何處理各種非靜態(tài)類型值之間的交互是一個(gè)選擇和約定的問題。


查看完整回答
反對 回復(fù) 2019-07-09
  • 3 回答
  • 0 關(guān)注
  • 410 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號