JavaScript 与 Swift的异同

        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。

你可能感兴趣的:(JavaScript 与 Swift的异同)