Fe-interview: [js] 第182天 为什么说js是弱类型语言,它的优缺点分别是什么?

Created on 14 Oct 2019  ·  4Comments  ·  Source: haizlin/fe-interview

第182天 为什么说js是弱类型语言,它的优缺点分别是什么?

js

Most helpful comment

这个题目可以让我们进行充分的思考,通过弱类型语言这几个字,我们可以进行如下拓展:

静态语言:我们把在使用之前就需要确认其变量数据类型的称为静态语言。

动态语言:我们把在运行过程中需要检查数据类型的语言称为动态语言。

通常把偷偷进行类型转换的操作成为隐式类型转换

支持因此类型转换的语言称为弱类型语言,不支持隐式类型转换的语言称为强类型语言

编译型语言:通常都会对源代码进行编译,生成可以执行的二进制代码,执行的是编译后的结果。(C语言,C++、Object-C、swift)

解释型语言:通常不用对源代码进行编译,一般是通过解释器载入脚本后运行。由于每个语句都是执行的时候才进行解释翻译,这样解释性语言每次执行就要翻译一次,效率相对要低。(JavaScript、Python、Erlang、PHP、Perl、Ruby)

由此我们知道,JS属于弱类型、动态、解释型语言。

拓展

弱(强)类型语言、静(动)态语言、编译(解释)型语言概念总览

All 4 comments

因为在定义变量时,不需要定它的类型,比如整型,浮点型,字符型之类的

弱类型语言:表现在定义变量的时候不用说明变量的类型,能够类型推断。
优点在于书写方便?
缺点:在于不知道数据类型,可读性不高,不便与维护。在typescript中做了优化,增加了泛型,接口,等强类型语言的概念。

这个题目可以让我们进行充分的思考,通过弱类型语言这几个字,我们可以进行如下拓展:

静态语言:我们把在使用之前就需要确认其变量数据类型的称为静态语言。

动态语言:我们把在运行过程中需要检查数据类型的语言称为动态语言。

通常把偷偷进行类型转换的操作成为隐式类型转换

支持因此类型转换的语言称为弱类型语言,不支持隐式类型转换的语言称为强类型语言

编译型语言:通常都会对源代码进行编译,生成可以执行的二进制代码,执行的是编译后的结果。(C语言,C++、Object-C、swift)

解释型语言:通常不用对源代码进行编译,一般是通过解释器载入脚本后运行。由于每个语句都是执行的时候才进行解释翻译,这样解释性语言每次执行就要翻译一次,效率相对要低。(JavaScript、Python、Erlang、PHP、Perl、Ruby)

由此我们知道,JS属于弱类型、动态、解释型语言。

拓展

弱(强)类型语言、静(动)态语言、编译(解释)型语言概念总览

这个题目可以让我们进行充分的思考,通过弱类型语言这几个字,我们可以进行如下拓展:

静态语言:我们把在使用之前就需要确认其变量数据类型的称为静态语言。
动态语言:我们把在运行过程中需要检查数据类型的语言称为动态语言。
通常把偷偷进行类型转换的操作成为隐式类型转换
支持因此类型转换的语言称为弱类型语言,不支持隐式类型转换的语言称为强类型语言
编译型语言:通常都会对源代码进行编译,生成可以执行的二进制代码,执行的是编译后的结果。(C语言,C++、Object-C、swift)
解释型语言:通常不用对源代码进行编译,一般是通过解释器载入脚本后运行。由于每个语句都是执行的时候才进行解释翻译,这样解释性语言每次执行就要翻译一次,效率相对要低。(JavaScript、Python、Erlang、PHP、Perl、Ruby)

由此我们知道,JS属于弱类型、动态、解释型语言。

拓展

弱(强)类型语言、静(动)态语言、编译(解释)型语言概念总览
支持因此类型转换的语言称为弱类型语言,不支持隐式类型转换的语言称为强类型语言。
我觉得这句话有问题,c++中也有隐式类型转换。但是c++不是弱类型语言。

Was this page helpful?
0 / 5 - 0 ratings