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. 关于python logging的 NOTSET 级别

    说重点: NOTSET 意指不设置 所以按照父logger级别来过滤日志 注意 不是最低级别的意思 由于logging中root日志对象的默认级别是WARNING, 所以当你使用logging.get ...

  2. Spring AOP 中pointcut expression表达式

    原文地址——http://blog.csdn.net/qq525099302/article/details/53996344 Pointcut是指那些方法需要被执行”AOP”,是由”Pointcut ...

  3. forward请求转发,param参数传递以及request.getParameter图文讲解

    <%@ page language="java" contentType="text/html;charset=utf-8" pageEncoding=& ...

  4. 11.DataGrid分页

    前台页面: 后台程序:

  5. ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)

    一.ASP.NET Web API接口定义 ASP.NET Web API默认实现了Action方法和HTTP方法的映射,Action方法方法名体现了其能处理的请求必须采用的HTTP方法 二.寄宿方式 ...

  6. (原创)c++中的类型擦除

    c++11 boost技术交流群:296561497,欢迎大家来交流技术. 关于类型擦除,可能很多人都不清楚,不知道类型擦除是干啥的,为什么需要类型擦除.有必要做个说明,类型擦除就是将原有类型消除或者 ...

  7. java 注释annotation学习---两篇不错的blog

    深入理解Java:注解(Annotation)自定义注解入门 ---- http://www.cnblogs.com/peida/archive/2013/04/24/3036689.html 深入理 ...

  8. 如何将Excel 图表导出

    简单分三步: Step1: Alt+ F11 --> 调出 VBA: Step2: Ctrl+G (开关键)—>调出立即窗口: Step3:  在立即窗口输入  activesheet.C ...

  9. AlexNet详解

    在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军.要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet,这是CNN ...

  10. Linux下可视化空间分析工具ncdu

    场景:磁盘空间占满后快速查找某个目录(子目录)占用空间大. ncdu /var (分析后按左右键查看即可)