真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c#和JavaScript有哪些區(qū)別

這篇文章將為大家詳細(xì)講解有關(guān)c#和JavaScript有哪些區(qū)別,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

成都創(chuàng)新互聯(lián)公司2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元丹陽(yáng)做網(wǎng)站,已為上家服務(wù),為丹陽(yáng)各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575

區(qū)別:1、JavaScript中var關(guān)鍵字可引用不同的類型,c#中不可以;2、JS有6種基本數(shù)據(jù)類型和1種引用數(shù)據(jù)類型,而c#有16種預(yù)定義類型和用戶自定義類型;3、string在JS中屬于值(基本)類型,而在C#中屬于引用(復(fù)雜)數(shù)據(jù)。

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5&&C# 8版、Dell G3電腦。

c#和JavaScript的區(qū)別

1. var關(guān)鍵字

// C#中
var total = 15;
var mec = new MyExcellentClass();
 
// 等價(jià)于
int total = 15;
MyExcellentClass mec = new MyExcellentClass();

C#中,var關(guān)鍵字并不是特定類型變量的符號(hào)。它只是句法上的速記,表示任何可以從初始化語(yǔ)句的右邊推斷出的類型。它不像js的var那樣可以引用不同的類型,var關(guān)鍵字并不改變C#的強(qiáng)類型性質(zhì)。

2. 嵌套塊中的本地變量

// C#
void Method
{
  var num1 = 5;
  {
    var num2 = 10;
    ...
  }
  ...
}
// JS
function Method1()
{
  var num1 = 5;
  {
    var num2 = 10;
    ...
  }
  ...
}
 
// 采用es6的let變量
function Method2()
{
  let num1 = 5;
  {
    let num2 = 10;
    ...
  }
  ...
}

首先,js在es6之前是沒(méi)有塊級(jí)作用域這個(gè)概念的,也就是說(shuō)在函數(shù)Method1中num1和num2都處于同一個(gè)作用域中(即Method1的函數(shù)作用域)。

es6中的let變量使得js也能實(shí)現(xiàn)塊作用域的效果,即變量num2僅存在相鄰的這對(duì)大括號(hào){ }中,此時(shí)變量的作用效果同C#的嵌套塊。

其次,還有一個(gè)區(qū)別,在JS以及C和C++中,變量是可以重名的,在內(nèi)部范圍(塊作用域),內(nèi)部名稱掩蓋了外部名稱,同名變量的值被重置。然而,C#中不允許同名變量(不管嵌套級(jí)別如何,都不能在第一個(gè)名稱的有效范圍內(nèi)聲明另一個(gè)同名的本地變量)。

最后,再擴(kuò)展說(shuō)明一下,與JS、C、C++不同,C#中沒(méi)有全局變量、全局函數(shù),變量和函數(shù)必須在類型的內(nèi)部聲明(萬(wàn)物皆在類中)。

3. 數(shù)據(jù)類型

JS的數(shù)據(jù)類型:6種基本數(shù)據(jù)類型和1種引用數(shù)據(jù)類型。

JS數(shù)據(jù)類型
基本數(shù)據(jù)類型Number,String,Boolean,Undefined,Null,Symbol(es6)
引用(復(fù)雜)數(shù)據(jù)類型Object(包括函數(shù)、數(shù)組、正則表達(dá)式等一切除基本數(shù)據(jù)類型以為的類型)

C#的數(shù)據(jù)類型:16種預(yù)定義類型和用戶自定義類型。

C#16種預(yù)定義類型
11種數(shù)值類型

整數(shù)類型:sbyte、byte、short、ushort、int、uint、long、ulong

浮點(diǎn)類型:decimal、float、double

1種Unicode字符類型char
1種布爾類型bool
3種復(fù)雜類型

string(Unicode字符數(shù)組)、

object(所有類型的基類)、

dynamic(使用動(dòng)態(tài)語(yǔ)言編寫的程序集時(shí)使用)

C#用戶自定義類型
類類型class
結(jié)構(gòu)類型struct
數(shù)組類型array
枚舉類型enum
委托類型delegate
接口類型interface

重點(diǎn)區(qū)別一:string在JS中屬于值(基本)類型;string在C#屬于引用(復(fù)雜)數(shù)據(jù)類型,其初始值為null,而不是""。

// C#中
string a; // 此處a的初始值為null,而不是""

延伸:C#中,如果沒(méi)有初始化的變量,其值會(huì)被編譯器設(shè)為默認(rèn)值,默認(rèn)值由字段的類型決定。值類型,默認(rèn)值為0;布爾類型,默認(rèn)值為false;引用類型,默認(rèn)值為null。JS中,如果是直接用var聲明的變量,其默認(rèn)值一律為undefined。

// JS中
var a;
console.log(a); // undefined

重點(diǎn)區(qū)別二:與JS、C、C++不同,在C#中數(shù)字不具有布爾意義。

// C#中
int x = 5;
if( x ) //錯(cuò),x是int類型,不是布爾類型
  ...
if( x == 5 ) //對(duì),因?yàn)楸磉_(dá)式返回了一個(gè)布爾類型的值
  ...

重點(diǎn)區(qū)別三:?jiǎn)我?hào)與雙引號(hào)意義不同。

// C#中,假設(shè)'A'為char類型,如果把字符放在雙引號(hào)中,編譯器會(huì)把它看成字符串,從而產(chǎn)生錯(cuò)誤。

// JS中,單引號(hào)和雙引號(hào)一樣,都用于表示字符串(string類型):
'A' === "A" // true

4. foreach 和 forEach

兩者在使用過(guò)程中的最大區(qū)別就是C#中可以通過(guò)break語(yǔ)法來(lái)跳出循環(huán),而在JS中forEach正常來(lái)說(shuō)是沒(méi)得法子跳出循環(huán)的。

注意:兩者大小寫不同,另外C#中foreach可用于數(shù)組、字符串或集合類數(shù)據(jù)類型。JS中forEach僅用于數(shù)組對(duì)象。

代碼參照如下:

// C#中
int[] a = {1, 2, 3, 4, 5};
foreach (var item in a) {
  Console.WriteLine(item + "-- start")
  if(item > 3) break;
  Console.WriteLine(item + "-- end")
}

JS代碼通過(guò)控制臺(tái)的測(cè)試截圖可以更加直觀的理解,測(cè)試代碼如下:

// JS測(cè)試代碼,可用于控制臺(tái)輸出比較
var a = [1, 2, 3, 4, 5];

// break --語(yǔ)法報(bào)錯(cuò)
a.forEach(item => {
  console.log(item + "-- start")
  if(item > 3) break;
  console.log(item + "-- over")
})

// return --并非跳出循環(huán)
a.forEach(item => {
  console.log(item + "-- start")
  if(item > 3) return;
  console.log(item + "-- over")
})

// throw new Error --非主流行為,的確可以跳出循環(huán)
a.forEach(item => {
  console.log(item + "-- start")
  if(item > 3) throw new Error("-- 強(qiáng)行報(bào)錯(cuò)來(lái)終止遍歷");
  console.log(item + "-- over")
})

控制臺(tái)輸出如下:

c#和JavaScript有哪些區(qū)別

關(guān)于“c#和JavaScript有哪些區(qū)別”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。


網(wǎng)站標(biāo)題:c#和JavaScript有哪些區(qū)別
標(biāo)題URL:http://weahome.cn/article/jjdggh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部