国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

TypeScript與JavaScript

這篇具有很好參考價(jià)值的文章主要介紹了TypeScript與JavaScript。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

TypeScript與JavaScript

博主作品:《Java項(xiàng)目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分離項(xiàng)目,可以在左邊的分類(lèi)專(zhuān)欄找到更多項(xiàng)目。《Uniapp項(xiàng)目案例》有幾個(gè)有uniapp教程,企業(yè)實(shí)戰(zhàn)開(kāi)發(fā)?!段⒎?wù)實(shí)戰(zhàn)》專(zhuān)欄是本人的實(shí)戰(zhàn)經(jīng)驗(yàn)總結(jié),《Spring家族及微服務(wù)系列》專(zhuān)注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源碼解讀、熱門(mén)面試題、架構(gòu)設(shè)計(jì)等。除此之外還有不少文章等你來(lái)細(xì)細(xì)品味,更多驚喜等著你哦

??開(kāi)源Vue3項(xiàng)目免費(fèi)哦:點(diǎn)擊這里克隆或者下載?,點(diǎn)擊star(star越多維護(hù)動(dòng)力越多) ? ??

目錄

一、什么是javascript

二、TypeScript:靜態(tài)類(lèi)型檢查器

1、類(lèi)型化的 JavaScript 超集

1.1、句法

1.2、類(lèi)型

1.3、運(yùn)行時(shí)行為

1.4、擦除類(lèi)型

2、學(xué)習(xí) JavaScript 還是?TypeScript


一、什么是javascript

? ? JavaScript(也稱(chēng)為 ECMAScript)最初是一種用于瀏覽器的簡(jiǎn)單腳本語(yǔ)言。在它被發(fā)明的時(shí)候,它被期望用于嵌入網(wǎng)頁(yè)的短代碼片段——編寫(xiě)超過(guò)幾十行的代碼有點(diǎn)不尋常。因此,早期的網(wǎng)絡(luò)瀏覽器執(zhí)行此類(lèi)代碼的速度非常慢。不過(guò),隨著時(shí)間的推移,JS 變得越來(lái)越流行,Web 開(kāi)發(fā)人員開(kāi)始使用它來(lái)創(chuàng)建交互式體驗(yàn)。

? ? Web 瀏覽器開(kāi)發(fā)人員通過(guò)優(yōu)化他們的執(zhí)行引擎(動(dòng)態(tài)編譯)和擴(kuò)展它的功能(添加 API)來(lái)應(yīng)對(duì) JS 使用的增加,這反過(guò)來(lái)又使 Web 開(kāi)發(fā)人員更多地使用它。在現(xiàn)代網(wǎng)站上,瀏覽器經(jīng)常運(yùn)行跨越數(shù)十萬(wàn)行代碼的應(yīng)用程序。這是“網(wǎng)絡(luò)”的漫長(zhǎng)而漸進(jìn)的成長(zhǎng)過(guò)程,從一個(gè)簡(jiǎn)單的靜態(tài)頁(yè)面網(wǎng)絡(luò)開(kāi)始,演化為各種豐富應(yīng)用程序的平臺(tái)。

? ? 不僅如此,JS 已經(jīng)變得足夠流行,可以在瀏覽器上下文之外使用,例如使用 node.js 實(shí)現(xiàn) JS 服務(wù)器。JS 的“隨處運(yùn)行”特性使其成為跨平臺(tái)開(kāi)發(fā)的有吸引力的選擇?,F(xiàn)在有很多開(kāi)發(fā)人員只使用JavaScript 來(lái)編寫(xiě)他們的整個(gè)堆棧!

? ? 總而言之,我們擁有一種專(zhuān)為快速使用而設(shè)計(jì)的語(yǔ)言,然后發(fā)展成為一種成熟的工具來(lái)編寫(xiě)具有數(shù)百萬(wàn)行的應(yīng)用程序。每種語(yǔ)言都有自己的怪癖——古怪和驚喜,而 JavaScript 的不起眼的開(kāi)端使它擁有許多這樣的怪癖。一些例子:

JavaScript 的相等運(yùn)算符 (?==)強(qiáng)制轉(zhuǎn)換其參數(shù),導(dǎo)致意外行為:

if ("" == 0) {
  // It is! But why??
}
if (1 < x < 3) {
  // True for *any* value of x!
}

JavaScript 還允許訪問(wèn)不存在的屬性:

const obj = { width: 10, height: 15 };
// Why is this NaN? Spelling is hard!
const area = obj.width * obj.heigth;

大多數(shù)編程語(yǔ)言會(huì)在發(fā)生此類(lèi)錯(cuò)誤時(shí)拋出錯(cuò)誤,有些會(huì)在編譯期間拋出錯(cuò)誤——在任何代碼運(yùn)行之前。在編寫(xiě)小程序時(shí),這種怪癖很煩人但可以管理;在編寫(xiě)包含數(shù)百或數(shù)千行代碼的應(yīng)用程序時(shí),這些不斷出現(xiàn)的意外是一個(gè)嚴(yán)重的問(wèn)題。

二、TypeScript:靜態(tài)類(lèi)型檢查器

? 有些語(yǔ)言根本不允許那些有缺陷的程序運(yùn)行。在不運(yùn)行代碼的情況下檢測(cè)代碼中的錯(cuò)誤稱(chēng)為靜態(tài)檢查。根據(jù)正在操作的值的種類(lèi)來(lái)確定什么是錯(cuò)誤,什么不是錯(cuò)誤,這被稱(chēng)為靜態(tài)類(lèi)型檢查。

TypeScript 在執(zhí)行前檢查程序是否有錯(cuò)誤,并根據(jù)值的種類(lèi)進(jìn)行檢查,使其成為靜態(tài)類(lèi)型檢查器。例如,上面的最后一個(gè)例子因?yàn)閛bj. 這是 TypeScript 發(fā)現(xiàn)的錯(cuò)誤:

TypeScript與JavaScript

1、類(lèi)型化的 JavaScript 超集

但是,TypeScript 與 JavaScript 有何關(guān)系?

1.1、句法

TypeScript 是一種語(yǔ)言,是JavaScript 的超集:因此 JS 語(yǔ)法是合法的 TS。語(yǔ)法是指我們編寫(xiě)文本以形成程序的方式。例如,此代碼存在語(yǔ)法錯(cuò)誤,因?yàn)樗鄙?:

TypeScript與JavaScript

由于其語(yǔ)法,TypeScript 不會(huì)將任何 JavaScript 代碼視為錯(cuò)誤。這意味著可以將任何有效的 JavaScript 代碼放入 TypeScript 文件中,而不必?fù)?dān)心它的具體編寫(xiě)方式。

1.2、類(lèi)型

然而,TypeScript 是一個(gè)類(lèi)型超集,這意味著它添加了關(guān)于如何使用不同類(lèi)型的值的規(guī)則。較早的錯(cuò)誤 aboutobj.heigth不是語(yǔ)法錯(cuò)誤:它是以不正確的方式使用某種值(類(lèi)型)的錯(cuò)誤。

作為另一個(gè)示例,這是可以在瀏覽器中運(yùn)行的 JavaScript 代碼,它將記錄一個(gè)值:

TypeScript與JavaScript

這個(gè)語(yǔ)法上合法的程序記錄Infinity. 但是,TypeScript 將數(shù)字除以數(shù)組視為無(wú)意義的操作,并且會(huì)發(fā)出錯(cuò)誤:

TypeScript與JavaScript

有可能真的打算將一個(gè)數(shù)字除以一個(gè)數(shù)組,也許只是為了看看會(huì)發(fā)生什么,但大多數(shù)時(shí)候,這是一個(gè)編程錯(cuò)誤。TypeScript 的類(lèi)型檢查器旨在允許正確的程序通過(guò),同時(shí)仍然捕獲盡可能多的常見(jiàn)錯(cuò)誤。(稍后,我們將了解可用于配置 TypeScript 檢查代碼的嚴(yán)格程度的設(shè)置。)

如果將一些代碼從 JavaScript 文件移動(dòng)到 TypeScript 文件,可能會(huì)看到類(lèi)型錯(cuò)誤,具體取決于代碼的編寫(xiě)方式。這些可能是代碼的合理問(wèn)題,或者 TypeScript 過(guò)于保守。在本指南中,我們將演示如何添加各種 TypeScript 語(yǔ)法來(lái)消除此類(lèi)錯(cuò)誤。

1.3、運(yùn)行時(shí)行為

? TypeScript 也是一種保留了JavaScript運(yùn)行時(shí)行為的編程語(yǔ)言。例如,在 JavaScript 中除以零會(huì)產(chǎn)生Infinity而不是拋出運(yùn)行時(shí)異常。原則上,TypeScript從不改變 JavaScript 代碼的運(yùn)行時(shí)行為。

? 這意味著,如果將代碼從 JavaScript 移至 TypeScript,即使 TypeScript 認(rèn)為代碼存在類(lèi)型錯(cuò)誤,它也能保證以相同的方式運(yùn)行。

? 保持與 JavaScript 相同的運(yùn)行時(shí)行為是 TypeScript 的基本承諾,因?yàn)檫@意味著可以輕松地在兩種語(yǔ)言之間轉(zhuǎn)換,而不必?fù)?dān)心可能導(dǎo)致程序停止運(yùn)行的細(xì)微差異。

1.4、擦除類(lèi)型

粗略地說(shuō),一旦 TypeScript 的編譯器檢查完代碼,它就會(huì)擦除類(lèi)型以生成生成的“編譯”代碼。這意味著一旦代碼被編譯,生成的普通 JS 代碼就沒(méi)有類(lèi)型信息。

這也意味著 TypeScript 永遠(yuǎn)不會(huì)根據(jù)它推斷的類(lèi)型更改程序的行為。最重要的是,雖然可能會(huì)在編譯期間看到類(lèi)型錯(cuò)誤,但類(lèi)型系統(tǒng)本身與程序運(yùn)行時(shí)的工作方式無(wú)關(guān)。

最后,TypeScript 不提供任何額外的運(yùn)行時(shí)庫(kù)。程序?qū)⑹褂门c JavaScript 程序相同的標(biāo)準(zhǔn)庫(kù)(或外部庫(kù)),因此無(wú)需學(xué)習(xí)額外的 TypeScript 特定框架。

2、學(xué)習(xí) JavaScript 還是?TypeScript

我們經(jīng)??吹健拔覒?yīng)該學(xué)習(xí) JavaScript 還是 TypeScript?”這個(gè)問(wèn)題。

答案是兩者不是水火不容,不學(xué)JavaScript就學(xué)不會(huì)TypeScript!TypeScript 與 JavaScript 共享語(yǔ)法和運(yùn)行時(shí)行為,因此學(xué)習(xí)的任何有關(guān) JavaScript 的知識(shí)都可以同時(shí)幫助學(xué)習(xí) TypeScript。

有很多資源可供程序員學(xué)習(xí) JavaScript;如果正在編寫(xiě) TypeScript,則不應(yīng)忽略這些資源。例如,標(biāo)記的 StackOverflow 問(wèn)題大約是 的 20 倍javascript,typescript但所有問(wèn)題javascript也適用于 TypeScript。

如果發(fā)現(xiàn)自己正在搜索諸如“如何在 TypeScript 中對(duì)列表進(jìn)行排序”之類(lèi)的內(nèi)容,請(qǐng)記住:TypeScript 是帶有編譯時(shí)類(lèi)型檢查器的 JavaScript 運(yùn)行時(shí)。在 TypeScript 中對(duì)列表進(jìn)行排序的方式與在 JavaScript 中排序的方式相同。如果找到直接使用 TypeScript 的資源,那也很好,但不要局限于認(rèn)為需要特定于 TypeScript 的答案來(lái)解決有關(guān)如何完成運(yùn)行時(shí)任務(wù)的日常問(wèn)題。
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-454978.html

到了這里,關(guān)于TypeScript與JavaScript的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • TypeScript是什么?它與JavaScript有什么區(qū)別?

    面試題-TS(1):TypeScript是什么?它與JavaScript有什么區(qū)別? TypeScript是一種編程語(yǔ)言,它是JavaScript的超集。它通過(guò)添加靜態(tài)類(lèi)型、類(lèi)、接口和模塊等功能來(lái)擴(kuò)展JavaScript。 JavaScript是一種廣泛應(yīng)用于Web開(kāi)發(fā)的腳本語(yǔ)言,它的靈活性和易用性使得它成為了開(kāi)發(fā)者們的首選。然而,JavaS

    2024年02月16日
    瀏覽(21)
  • Vue框架:適用于TypeScript的JavaScript框架

    Vue 是一個(gè)高效、靈活、易于學(xué)習(xí)的 JavaScript 框架,它采用了 MVVM 架構(gòu),能夠快速構(gòu)建交互式的用戶界面。作為一種現(xiàn)代化的框架,Vue已經(jīng)成為了許多開(kāi)發(fā)者的首選,其中也包括了很多使用 TypeScript 的開(kāi)發(fā)者。 Vue 框架的最大特點(diǎn)是輕量級(jí)、易于上手、靈活和高效,這一點(diǎn)也是

    2024年02月11日
    瀏覽(24)
  • typeof 在TypeScript中和JavaScript中的區(qū)別

    typeof 在TypeScript中和JavaScript中的區(qū)別

    ????????在TypeScript中和JavaScript中都有typeOf,但是作用用法卻大有不同。 一、typeof用來(lái)判斷數(shù)據(jù)類(lèi)型返回結(jié)果: 基本數(shù)據(jù)類(lèi)型:string,number,boolean,undefined 引用數(shù)據(jù)類(lèi)型:object (不管是什么引用類(lèi)型就返回object),function 二、typeof判斷變量是否存在 ????????ts中的typeof可

    2024年02月09日
    瀏覽(36)
  • TypeScript 從入門(mén)到精通:打造可靠、高效的現(xiàn)代 JavaScript

    TypeScript作為一種靜態(tài)類(lèi)型的編程語(yǔ)言,可以顯著改善JavaScript項(xiàng)目的可維護(hù)性、可讀性和開(kāi)發(fā)效率。本篇博客將帶你從入門(mén)到精通TypeScript,探索其強(qiáng)大的特性和用法。我們將深入了解基本類(lèi)型和變量聲明、函數(shù)和類(lèi)、模塊和命名空間等核心概念,并通過(guò)更多的案例代碼幫助你

    2024年02月13日
    瀏覽(24)
  • TypeScript的魔法:如何輕松提升JavaScript項(xiàng)目的穩(wěn)定性

    TypeScript的魔法:如何輕松提升JavaScript項(xiàng)目的穩(wěn)定性

    JavaScript,作為Web開(kāi)發(fā)的核心語(yǔ)言,因其靈活性和廣泛的應(yīng)用受到開(kāi)發(fā)者的喜愛(ài)。然而,這種靈活性也帶來(lái)了挑戰(zhàn),尤其是在大型項(xiàng)目中,代碼的維護(hù)和錯(cuò)誤的追蹤變得越來(lái)越困難。 TypeScript,起初被許多開(kāi)發(fā)者視為“帶類(lèi)型的JavaScript”,但實(shí)際上,它遠(yuǎn)不止于此。確實(shí),Ty

    2024年02月10日
    瀏覽(21)
  • TypeScript:賦予JavaScript數(shù)據(jù)類(lèi)型新的力量,提升編程效率!

    TypeScript:賦予JavaScript數(shù)據(jù)類(lèi)型新的力量,提升編程效率!

    ?? 岸邊的 風(fēng): 個(gè)人主頁(yè) ??? ?個(gè)人專(zhuān)欄? : 《 VUE 》?《 javaScript 》 ??? 生活的理想,就是為了理想的生活?! ? TypeScript: 擴(kuò)展 JavaScript 數(shù)據(jù)類(lèi)型,賦予編程更強(qiáng)大的表達(dá)能力! 在現(xiàn)代Web開(kāi)發(fā)中, TypeScript 已經(jīng)成為了一種備受歡迎的編程語(yǔ)言。它不僅繼承了 JavaScript 的

    2024年02月09日
    瀏覽(52)
  • 面試題-TS(一):TypeScript是什么?它與JavaScript有什么區(qū)別?

    面試題-TS(一):TypeScript是什么?它與JavaScript有什么區(qū)別? TypeScript是一種編程語(yǔ)言,它是JavaScript的超集。它通過(guò)添加靜態(tài)類(lèi)型、類(lèi)、接口和模塊等功能來(lái)擴(kuò)展JavaScript。 JavaScript是一種廣泛應(yīng)用于Web開(kāi)發(fā)的腳本語(yǔ)言,它的靈活性和易用性使得它成為了開(kāi)發(fā)者們的首選。然而,Jav

    2024年02月15日
    瀏覽(19)
  • JavaScript、TypeScript、ES5、ES6之間的聯(lián)系和區(qū)別

    JavaScript、TypeScript、ES5、ES6之間的聯(lián)系和區(qū)別

    ECMAScript: ?一個(gè)由 ECMA International 進(jìn)行標(biāo)準(zhǔn)化,TC39 委員會(huì)進(jìn)行監(jiān)督的語(yǔ)言。通常用于指代標(biāo)準(zhǔn)本身。 JavaScript: ?ECMAScript 標(biāo)準(zhǔn)的各種實(shí)現(xiàn)的最常用稱(chēng)呼。這個(gè)術(shù)語(yǔ)并不局限于某個(gè)特定版本的 ECMAScript 規(guī)范,并且可能被用于任何不同程度的任意版本的 ECMAScript 的實(shí)現(xiàn)。 ECMAS

    2024年02月13日
    瀏覽(34)
  • 前端經(jīng)典面試題 | 吊打面試官系列 之 說(shuō)說(shuō)你對(duì)TypeScript 和 JavaScript的理解

    ??? 前端經(jīng)典面試題 專(zhuān)欄:吊打面試官系列 之 說(shuō)說(shuō)你對(duì)TypeScript 和 JavaScript的理解 ????? 個(gè)人簡(jiǎn)介:一個(gè)不甘平庸的平凡人?? ? 個(gè)人主頁(yè):CoderHing的個(gè)人主頁(yè) ?? 格言: ?? 路漫漫其修遠(yuǎn)兮,吾將上下而求索?? ?? 你的一鍵三連是我更新的最大動(dòng)力?? 目錄 一、回答

    2024年01月17日
    瀏覽(41)
  • 【Docker】部署和運(yùn)行青龍面板:一個(gè)支持python3、javaScript、shell、typescript 的定時(shí)任務(wù)管理面板

    【Docker】部署和運(yùn)行青龍面板:一個(gè)支持python3、javaScript、shell、typescript 的定時(shí)任務(wù)管理面板

    青龍面板是一個(gè)支持python3、javaScript、shell、typescript 的定時(shí)任務(wù)管理面板。 拉取鏡像 從 Docker Hub 上拉取最新的 “qinglong” 鏡像。 啟動(dòng)容器 使用剛剛拉取的鏡像來(lái)啟動(dòng)一個(gè)新的 Docker 容器。 這個(gè)命令中的各個(gè)組成部分的含義如下: docker run : 這是 Docker 的一個(gè)命令,用于創(chuàng)建

    2024年01月22日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包