js与C#对比

js和C#相比。

最大不同,在于js是脚本语言,C#是编译性质的语言。

作用域方面

js的作用域只有全局作用域和方法作用域,但是可以通过let关键字将作用域限制在块中
C#是存在块作用域的,在块中定义的变量,出了这个块就不能使用。

数据类型

js和C#一样从抽象层面来说都具有值类型和对象类型
js的数字只有浮点型,导致计算数据不准确
C#同时具有float, double,int,long等类型
js的string类型是值类型,但是C#的string是比较特殊的对象类型
js的字符串可以用双引号或单引号,但是C#只可以用双引号
js和C#都含有数组对象,null关键字,但是js含有undefined类型,对于未初始化或未声明的变量,值或类型就是undefined

const

js的const可以用来修饰对象,对象的属性值可以改变,但是变量所对应的对象不能更改为其它。
C#的const只能修饰值类型

声明与初始化

js可以先使用,然后声明,即声明提升
C#不声明就不能使用,而且不初始化会赋予默认值。
但是js不进行初始化就是undefined

比较符方面

js多了两个特殊的比较符 === 和!== 他们两个的特殊之处在于同时比较值和数据类型
C#和大多数语言一样是==和!= 所以这是我觉得比较扯的地方

标记

js可以定义代码label,然后用break和continue配合使用

异步编程

js的异步编程是通过settimeout函数和AJAX来实现的
C#是直接创建线程

for循环

js当中存在一个for…in 相当于C#的foreach

定义对象不同

js是通过大括号,并且将所有属性和方法全部写在里面。
C#则是新建类,然后new一个对象

+不同点

js的加号运算符会尽量对相加的两者进行类型转换,然后得出一个看似正确的结果。
C#则是直接报错。

函数定义

js函数定义没有返回值类型(脚本语言本身就是一种弱类型语言)
而且定义函数需要用function关键字,C#则并不需要。
js的函数可以自调用,即自己调用自己。但是C#不存在这个语法。
js和C#都支持匿名函数,也都支持闭包。
js和C#的函数本质都是对象。
js函数是一个对象,所以也有属于他的属性和方法call(),call方法的第一个参数是对象
其实js函数的本质就是C#中的委托
js函数中可以使用this,这个this指该函数所绑定的对象。如果函数是全局函数,那么就指代window对象

this的使用

在js中,不同的上下文里面this所指代的对象是不同的。
但是在C#中,this指的就是当前对象。

js有自己的jquery库
C#也有自己对应的很多dll库可以使用

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值