javascript不是什么

如《把时间当作朋友》的作者所说,“有些时候,有些事物,从反面描述比从正面描述更为容易。如若先仔细说清楚这本书不是什么,之后,至于它究竟是什么,很可能就不言自明了。”

javascript它不是一门静态类型、静态编程的语言,也不是一门服务器语言,更没有像其他语言那样有那么多的api,也没有强制你一定要按照哪种规范去编写代码,它的继承也不是像其他语言那样通过extends来继承。

怎么证明它不是什么

要搞懂它不是什么,就得先知道什么是静态类型,什么是动态类型,什么是静态编程,什么是动态编程语言。

1、静态类型是指在定义变量时就需要去指定它的类型。而动态类型则指,我们不需要明确告诉程序这个变量的值是什么类型,因为它会自动根据值来判断它是什么类型。
2、静态编程语言是指在程序运行期,不可改变其变量的类型,而动态编程语言则可以。

我的理解是,我们常说的静态语言和动态语言则是以上两点的综合体。

以下这段代码就很好的解释了javascript它是一门动态语言。

var str = "走近javascript";
console.log(str); //走近javascript
str = 123;
console.log(str); //123

javascript的继承是通过原型来实现的,比如下面这段代码

function A(){}
A.prototype.hello = function(){
console.log("hello world");
}; function B(){}
B.prototype = A.prototype; var c = new B();
c.hello(); //hello world

因c实例化B,又因B继承自A的原型,因此c可以使用在A原型中的方法。

因javascript是一门客户端语言,代码在用户的电脑上执行,因此就会出现一些类似应不应该让编程人员去操作用户计算机中的文件及读取文件,如果可以那么是不是就意味着一些黑客可以通过javascript来传播病毒并且盗取用户信息,这也一直是客户端语言中存在的问题。

我倒觉得可以像安装手机app那样,在操作用户计算机文件时,询问用户是否同意。

参考资料

JavaScript的前世今生

JavaScript前世今生,HelloWorld与开发环境

什么是动态语言和静态语言?

走进javascript——它是什么?的更多相关文章

  1. 走进javascript——DOM事件

    DOM事件模型 在0级DOM事件模型中,它只是简单的执行你为它绑定的事件,比如你为某个元素添加了一个onclick事件,当事件触发时,它只是去调用我们绑定的那个方法,不再做其他的操作. 在2级DOM事 ...

  2. 走进javascript——不起眼的基础,值和分号

    值 有时我很想知道javascript解析引擎是如何区分一个变量的值,比如下面这段代码. var x = 'javascript'; //javascript x = "hello" ...

  3. 走进javascript——类型

    ECMAScript语言类型对应于使用ECMAScript语言的ECMAScript程序员直接操作的值.ECMAScript语言类型有以下几种Undefined,Null,Boolean,String ...

  4. 走进javascript——数组的那些事

    Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表. new Array(12) // (12) [undefined × 1 ...

  5. 走进JavaScript——重拾对象

    创建对象 Object构造器的参数如果为空或null.undefined将返回一个空的Object对象,如果为其他值则调用相应的构造器,如 new Object() // Object {} new ...

  6. 走进javascript——重拾数组

    Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表. new Array(12) // (12) [undefined × 1 ...

  7. 走进JavaScript

    JavaScript的作用:操作HTML元素,响应用户的操作,处理数据: script标签的type或者language可以写也可以不写: script标签防止位置:head结束之前或者body结束之 ...

  8. 雷哥带你走进Javascript

    javascript复习笔记--------------------------------------------1.概念2.面向对象思想3.作用认识4.引入方式5.执行顺序 变量 1)声明方式 x ...

  9. 走进javascript——解开switch之谜

    很早以前就觉得switch很怪异,或者说一直没太理解它,它怪异就怪异在非要给每个语句加上break;不然后面的语句就算不符合条件还是会执行,比如以下这段代码 var num = 2; switch(n ...

随机推荐

  1. Android自定义视图二:如何绘制内容

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! Android自定义视图一:扩展现有的视图,添加新的XML属性 Android自定义视图二:如何绘制内容 Android自定义视图三: ...

  2. Java输入输出技术

    输入输出分类     输入流,相对计算机来说是输入的,例如鼠标键盘操作,设备给计算机的信息     输出流,相对计算机来说是输出的,例如屏幕显示,计算机给设备的信息.   具体分类     基本流,I ...

  3. (DP 雷格码)Gray code -- hdu -- 5375

    http://acm.hdu.edu.cn/showproblem.php?pid=5375 Gray code Time Limit: 2000/1000 MS (Java/Others)    M ...

  4. spring 框架整合mybatis的源码分析

    问题:spring 在整合mybatis的时候,我们是看不见sqlSessionFactory,和sqlsession(sqlsessionTemplate 就是sqlsession的具体实现)的,这 ...

  5. To datafix AR DATE

    http://www.cnblogs.com/benio/archive/2012/07/07/2580203.html AR transactions should be created on 6- ...

  6. 2.启动MySql服务

    windows10下启动mysql服务出现服务名无效的原因及解决方法 问题原因:mysql服务没有安装. 解决办法: 在 mysql bin目录下 以管理员的权限 执行 mysqld -install ...

  7. MISL Learning

    https://www.codeguru.com/csharp/.net/net_general/il/article.php/c4635/MSIL-Tutorial.htm http://etuto ...

  8. ubuntu下Node.js环境搭建

    Node.js是一个能够在服务器端运行JavaScript的开放源代码.跨平台JavaScript运行环境.Node.js由Node.js基金会持有和维护,并与Linux基金会有合作关系.Node.j ...

  9. 通过 sysprocesses 简单查询死锁及解决死锁办法

    简单查询死锁,如下四步可以轻松解决: 第一步:查询死锁语句 1: 条件是 blocked <> 0 select dbid,* from sys.sysprocesseswhere 1=1 ...

  10. 【VB.NET】利用 ZXing.Net 生成二维码(支持自定义LOGO)

    有任何疑问请去我的新博客提出 https://blog.clso.fun/posts/2019-03-03/vb-net-zxing-net-qr-maker.html ZXing .NET 的项目主 ...