整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          一文讀懂 JavaScript 和 Python 九大語義區別

          者 | Ruqayyah Sara

          譯者 | 彎月,責編 | 伍杏玲

          出品 | CSDN(ID:CSDNnews)

          我是一名全棧開發。前幾天我一直在研究算法和數據結構,因為對于程序員而言,最重要能力的就是解決問題,所有任何程序員都應該擁有強大的解決問題的基礎能力。

          兩天前我開始學習Python,開始對這門語言有了更多的理解。我開始將其與JavaScript進行比較,因為JavaScript是我日常工作中使用的語言。

          JavaScript和Python是兩門非常重要的語言。盡管包括我在內的許多人都知道Python或JavaScript,但我們并不清楚兩種語言之間的重要區別。

          我注意到這兩門年語言有許多語義上的區別,相信理解這些區別對我和對其他人都有很大幫助。在本文中,我會比較我在兩門語言中遇到的一些基礎概念。所以,如果你熟悉JavaScript或Python,想了解二者的差異,那么你就來對地方了!

          注釋

          JavaScript

          使用雙斜線(//)作為單行注釋,/* */ 作為多行注釋。

          Python

          使用 # 作為單行注釋,使用三引號""" """ 作為多行注釋。

          代碼塊

          JavaScript

          JavaScript中的每個代碼塊都必須放在花括號({})中,每條語句必須使用分號 ; 結束。

          var a = 2;
          if(a>0){
          console.log("Positive");
          }
          else{
          console.log("Negative");
          }

          Python

          Python中的代碼塊使用縮進表示。它不使用花括號或圓括號,而是使用空白。每條語句都需要換行。

          a = 2

          if a>0:

          print("Positive")

          else:

          print("negative")

          print("does not belong to else block")

          數據類型

          我無法在本文中完整地討論JavaScript和Python之間的數據類型差異,這里我們只討論主要的差異。

          基本數據類型

          • 上面的表格展示了JavaScript和Python的基本數據類型。JavaScript中的Number類型表示Int和float值,由編譯器在運行時確定。而JavaScript(ES10)中的BigInt用于存儲大整數,而Python使用Int表示所有尺寸的整數。

          • JS使用關鍵字表示空值,Python使用None。

          • Python沒有undefined和symbol的概念,這些是JavaScript特有的。

          • Python有一種特殊的數據類型——complex,用于表示復數 x + yj,其中x是實部,y是虛部。

          a=3+4j
          print(a.real) #3
          print(a.imag) #4

          非基本數據類型

          • 上圖展示了復雜的(或者叫做非基本)數據類型。Python中的列表能存儲任何數據類型,與JavaScript一樣。

          • 但是Python中的數組可以使用庫(如NumPy,array)來定義。Python中的數組只能包含統一數據類型。Python中的列表和數組有很大區別。數組上可以執行多種數學操作,而列表不能。

          • JavaScript中的對象類似于Python中的字典。兩者都包含鍵值對。但對象是JavaScript中的基本組成部分,而字典在Python中只不過是個數據容器。

          • Python中的元組是一個不可修改的列表。用元組表示的列表無法被重新定義。而JavaScript沒有這個概念。

          • 因此,Python擁有內置的哈希表(字典),而JavaScript沒有內置的哈希表、方法或庫。

          變量定義

          JavaScript

          在JavaScript中定義變量需要使用三種主要的關鍵字:var,let和const。定義方法決定了變量的使用方式(以及作用域)。

          Python

          Python中定義變量不需要使用關鍵字,只需要給變量名直接賦值即可:

          a = 3
          print (a) # 3

          If-Else

          JavaScript

          JavaScript中的條件語句是 if、else if、else還有switch。

          Python

          Python中的條件語句是if、elif和else。

          elif是else-if的縮寫。Python沒有switch語句。相反,可以用字典來代替。

          三元運算符

          JavaScript

          JavaScript的三元運算符(?:)是一個條件運算符,語法為(condition)?(expresssionIfTrue):(expressionIfFalse):

          var age = 26;
          var beverage = (age >= 21) ? "Beer" : "Juice";
          console.log(beverage); // "Beer"

          Python

          Python中的三元運算符的語法是 (expressionIfTrue) if (condition) else (expressionIfFalse)

          a, b = 10, 20

          min = a if a < b else b

          print(min)

          全等運算符

          JavaScript

          全等運算符(===)也叫“嚴格相等運算符”,會比較兩個運算數并檢查其相等性,而不會進行類型轉換,也就是說,它會檢查運算數的數據類型。返回值為布爾。JavaScript只有一個全等運算符。

          var a=3,b="3";
          console.log(a==b); // true
          console.log(a===b); // false

          Python

          Python有兩個全等運算符:is 和 is not。

          is 運算符會測試兩個運算數是否為同一個對象,is not為is的反面。

          x = 5

          if (type(x) is int):

          print ("true") # true

          if ( type(x) is not int):

          print ("true")

          成員運算符

          JavaScript

          成員運算符檢查對象中的特定屬性。JavaScript只有一個成員運算符:in。

          const user= {name: 'Sara', age: 19, sex: "female"};
          console.log('name' in car);
          // output: true

          Python

          成員運算符用于驗證某個值是否為成員。Python有兩個成員運算符:in和not in。

          x = 24

          y = 20

          list = [10, 20, 30, 40, 50 ]

          if ( x not in list ):

          print ("not present") # Output:True

          循環

          JavaScript

          JavaScript有三種循環:

          • 入口控制循環:for和while(在執行循環語句之前測試條件)

          • 出口控制循環:do-while(執行循環語句之后測試條件)

          // for loop
          var c = ["red", "green", "blue", "purple"];
          for (var i = 0; i<4; i++){
          console.log(c[i]);
          }
          // prints array// while
          var c = ["red", "green", "blue", "purple"];
          while(i<4){
          console.log(c[i]);
          i++;
          } // prints array

          Python

          Python有兩種循環:for和while。Python沒有內置的do-while循環。

          Python的while循環與JavaScript的for循環類似。例如下面的例子:

          c = ["red", "green", "blue", "purple"]
          i = 0
          while i<4:
          print(c[i])
          i += 1 # i++ is invalid

          Python不支持++和--運算符。我們需要使用x+=1和x-=1。

          for循環用來遍歷序列(列表、數組和元組)。它使用in操作符和range函數進行迭代。可以用range生成一系列數字,該函數接受三個參數:start,stop和step。

          • start:開始的位置(可選)。默認為0。

          • stop:結束的位置(必須指定)。

          • step:指定序列中兩個數字之間的間隔(可選)。

          x = range(5)
          for n in x:
          print(n) # 1,2,3,4x = range(3,9)
          for n in x:
          print(n) # 3,4,5,6,7,8x = range(2,20,2)
          for n in x:
          print(n) # 2,4,6,8,10,12,14,16,18

          以上就是我注意到的最基本的JavaScript和Python之間的語義區別。

          原文鏈接:https://medium.com/better-programming/semantic-differences-between-javascript-and-python-ed21b1f3ce50

          本文為 CSDN 翻譯,轉載請注明來源出處。

          2008 年成立以來,Stack Overflow 收到了開發人員提出的數以百萬計的問題,那么開發人員最希望在 Stack Overflow 上解決哪些問題呢?為此,我們選擇了當前流行的 11 種編程語言,并觀察開發人員針對這些編程語言都提了哪些問題?

          (被選擇的 11 種編程語言)


          就原始問題的數量而言,JavaScript 是 Stack Overflow 中被提問最多的編程語言,主要原因是無論開發人員以何種方式使用 Internet,都需要了解一些 JavaScript。因此在大量不同的應用程序和服務中都可以看見 JavaScript 的身影。

          如果我們從時間維度來看,從 2011 年起,Python 在 Stack Overflow 中的提問數量出現了明顯的上升,這可能要歸因于數據科學的發展。2019 年,Python 成功超越 JavaScript,成為 Stack Overflow 中提問數量最多的編程語言。


          開發人員到底都在問哪些問題?最受質疑的框架、包、函數和方法是什么? 最令開發人員頭疼的數據類型是什么?不同語言之間的問題存在哪些共性和差異?

          為了搞清楚上述問題,我們從上面這 11 種編程語言的提問中各抽取了投票最高的 1000 個問題,并使用 Python 做了數據清理,然后將這 11000 個問題整合到一個 JavaScript 詞云算法中,從中我們得到了一些結論。

          JavaScript


          JavaScript 面世已有 23 年,在 Stack Overflow 中也已經有 11 年,其中“jquery”是迄今為止最受質疑的 JavaScript 框架。

          Python


          Python 最早出現在 1990 年,如今是數據科學家首選的編程語言之一。Python 的問題比較常出現在連接數據處理庫,例如“panda”和“dataframe”。

          Python 是一種通用的“膠水”語言,可以應用于不同的技術領域,這也是為什么 Web 開發框架 django 會收到比較多的疑問。

          R


          R 語言也是數據科學家常用的編程語言。但與 Python 不同的是,R 語言幾乎只用于數據處理,因此關于 R 語言的疑問集中在“dataframe”、“datatable”和“matrix”。

          Python 和 R 都有優秀的數據操作庫,如果就數據可視化而言,很多人認為 R 語言要優于 Python。但是在 Stack Overflow 中的實際情況是,R 語言中的數據可視化庫“ggplot”被開發者提問的最多。

          Ruby


          Ruby 出現于 90 年代中期,其獲得開發者比較多的關注是在 2005 年,David Heinemeier Hansson(DHH) 發布了基于 Ruby 的開發框架 Ruby on Rails。目前開發者提問最多的也是 Ruby on Rails。

          C#


          C# 是微軟公司在 2000 年發布的一種面向對象的編程語言,運行于 .NET Framework 和 .NET Core 上。

          C++


          C++ 發布于 1985 年,是目前電子游戲開發人員的首選語言。針對 C++,開發人員的提問主要集中在多邊形基本構建塊 vector,因為多邊形是三維視頻游戲的基本視覺構建塊。

          Java


          Java 首次發布于 1995 年,是一種寫一次可以在任何地方運行的通用編程語言。Java 是在 90 年代末和萬維網早期的 PC 熱潮中流行起來的,是許多 Windows 應用程序背后的驅動力?,F在,Java 主要被用來開發 Android 應用程序。

          Objective-C


          Objective-C 首次發布于 1984 年,是這 11 種編程語言中最古老的。Objective-C 是蘋果為 OSX 操作系統提供支持的主要語言,現在主要為 iPhone 上的 iOS 應用程序提供支持。

          Swift


          Swift 首次出現于 2014 年,目前在蘋果的開發領域已經取代了 Objective-C。

          從上面 Swift 的詞云中,我們發現了一個很有趣的標簽“Objective-C”,可能的原因是很多 iOS 開發者希望通過 Stack Overflow 來學習更多的知識。

          PHP


          PHP 首次發布于 1995 年,被設計為用于 web 開發的服務器端腳本語言。當然,PHP 現在的用途仍是如此,所以圍繞 PHP 的提問主要集中在“laravel”框架。

          SQL


          與前 10 種功能齊全的編程語言不同,SQL 是專為數據操作所設計的。正因為此,SQL 最常見的痛點都圍繞著數據庫訪問,詞云中的關鍵字主要有 sever、mysql、database、query、select 等等。

          隨著時間的推移,每一種編程語言都有一個十分擅長的使用場景,例如 R 語言和數據科學,Swift 和 iOS 開發,C++ 和視頻游戲開發。使用場景不同也解釋了為什么大家提問的類型和方向會有所不同。除了差異性,我們也從調查中看到了一些共性的問題,例如在基本的數據類型中,字符串和數組是經常出現的痛點。

          附 11000 個問題的詞云:

          原文鏈接:https://www.globalapptesting.com/blog/picking-apart-stackoverflow-what-bugs-developers-the-most

          更多有關精彩內容,請點擊“了解更多”。


          主站蜘蛛池模板: 国产成人高清视频一区二区| 无码少妇一区二区| 亚洲乱码一区二区三区国产精品| 亚洲av午夜福利精品一区| 在线观看国产一区二三区| 白丝爆浆18禁一区二区三区| 中文字幕精品一区二区精品| 久久国产午夜一区二区福利| 国产凸凹视频一区二区| 一区二区在线电影| 无码毛片一区二区三区视频免费播放 | 精品一区高潮喷吹在线播放| 国产一区二区三区小向美奈子 | 一区二区三区日本电影| 国产精品一区在线播放| 一区二区三区视频在线播放| 中文字幕无线码一区二区| 自慰无码一区二区三区| 视频一区视频二区在线观看| 亚洲Av无码国产一区二区 | 精品一区狼人国产在线| 无码国产精品一区二区免费式影视| 精品乱子伦一区二区三区| 日韩一区二区三区电影在线观看| 一区二区不卡在线| 亚洲一区二区三区免费视频| 日本一区二区不卡在线| 亚洲无删减国产精品一区| 久久精品午夜一区二区福利| 东京热无码一区二区三区av| 久久综合一区二区无码| 亚洲日韩精品一区二区三区| 免费看一区二区三区四区| 国产一区二区三区免费观看在线| 波多野结衣高清一区二区三区 | www.亚洲一区| 亚洲伦理一区二区| 四虎成人精品一区二区免费网站| 国产乱码精品一区二区三区麻豆 | 久久国产免费一区二区三区| 久久综合亚洲色一区二区三区|