JavaScript与Swift的异同,python像vb6

本文对比了JavaScript和Swift在变量类型、引用方式、数据类型检查、常量定义、全局作用域以及闭包等方面的异同,揭示了它们虽然大同小异,但在细节上有所区别。
摘要由CSDN通过智能技术生成

 其实很多主流的编程语言都是大同小异,魔改了一下罢了。

     JavaScript与Swift一样,是动态语言类型,即不用指定变量类型,会根据赋值的内容动态的判断出它的类型。与Swift不同的是,JavaScript定义变量的时候,也不需要指定变量类型或者必须得赋初始值。JavaScript可以在赋值的时候重新定义变量的类型。而Swift一旦确定了变量的类型,是不能再修改的。

        与swift不同的是,在JavaScript中是采用this来引用自身的属性方法等,而不像iOS开发,是调用self来调用。但是用法和用意是一样的。

        在JavaScript中,声明变量类型,是使用new来声明的。比如new String、new Number、new Boolean等。

        JavaScript的数字类型只有Number类型,该类型包含所有的其他语言的基础数值类型(int、float、double等)。        

        JavaScript数组的创建形式:javascript的方式方式有两种:1、使用new Array() 2、和swift一样,直接赋值。如:1: var cars = new Array();。2:var cars = ["a","b","c"];。

        JavaScript的对象,即key-value类型,即iOS所说的字典类型。JavaScript的定义方式和Swift的方式是一样的,如:var person={firstname:"John", lastname:"Doe", id:5566};但是与swift不同的是,JavaScript的对象的对象可以是函数类型,及value为某个函数类型。如:var person = { firstName: "John", lastName : "Doe",id : 5566,fullName : function() { return this.firstName + " " + this.lastName;}};换句话说,在JavaScript中,对象即是类,与swift有异曲同工之妙。

        在JavaScript中,Undefined 这个值表示变量不含有值。即定义了变量没有赋值,该变量为Undefined。null 和 undefined 的值相等,但类型不等,(1)undefined:是所有没有赋值变量的默认值,自动赋值。(2)null:主动释放一个变量引用的对象,表示一个变量不再指向任何对象地址。

        JavaScript可以通过将变量的值设置为 null 来清空变量。而swift中是使用nil,但是,Swift一旦指定了明确的类型,是不能够将变量的值设置为 null 来清空变量的。

        JavaScript 函数和swift函数是一样的使用方式。只是声明方式不一样。

        JavaScript的运算符与swift是一样的。比较符有些不同,JavaScript中多了绝对等号。即“===”表示值和类型都完全相同,也就有不绝对等号“!==”,表示不绝对等于(值和类型有一个不相等,或两个都不相等)

        typeof 操作符,可以用来检测变量的数据类型。

        constructor 属性返回所有 JavaScript 变量的构造函数。可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):function isArray(myArray) { return myArray.constructor.toString().indexOf("Array") > -1;} 。可以使用 constructor 属性来查看对象是否为日期 (包含字符串 "Date"):function isDate(myDate) {return myDate.constructor.toString().indexOf("Date") > -1;}

        JavaScript的变量,可以先使用,后声明。因为JavaScript会把声明的而未进行赋值的变量自动的提升到方法的最顶部。

        在JavaScript中,定义常量是使用const关键字,这个swift有很大的差别。swift是用let关键字来定义常量。而JavaScript的let关键字是用来定义局部变量的,即le声明的变量只能在该代码块中有效。

        在 JavaScript 中, 全局作用域是针对 JavaScript 环境。 在 HTML 中, 全局作用域是针对 window 对象。使用 var 关键字声明的全局作用域变量属于 window 对象,即是全局作用域,使用 let 关键字声明的全局作用域变量不属于 window 对象,即是局部作用域。

        JavaScript的闭包,和swift的闭包是不一样的,JavaScript的闭包,是一种自我调用函数的方式,此时,最外层的函数中的变量会只调用一次。如:var add = (function () { var counter = 0;return function () {return counter += 1;}})();add();add();add();获得的结果:计数器为 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

专注VB编程开发20年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值