走进javascript——它是什么?
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前世今生,HelloWorld与开发环境
走进javascript——它是什么?的更多相关文章
- 走进javascript——DOM事件
DOM事件模型 在0级DOM事件模型中,它只是简单的执行你为它绑定的事件,比如你为某个元素添加了一个onclick事件,当事件触发时,它只是去调用我们绑定的那个方法,不再做其他的操作. 在2级DOM事 ...
- 走进javascript——不起眼的基础,值和分号
值 有时我很想知道javascript解析引擎是如何区分一个变量的值,比如下面这段代码. var x = 'javascript'; //javascript x = "hello" ...
- 走进javascript——类型
ECMAScript语言类型对应于使用ECMAScript语言的ECMAScript程序员直接操作的值.ECMAScript语言类型有以下几种Undefined,Null,Boolean,String ...
- 走进javascript——数组的那些事
Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表. new Array(12) // (12) [undefined × 1 ...
- 走进JavaScript——重拾对象
创建对象 Object构造器的参数如果为空或null.undefined将返回一个空的Object对象,如果为其他值则调用相应的构造器,如 new Object() // Object {} new ...
- 走进javascript——重拾数组
Array构造器 如果参数只有一个并且是Number类型,那么就是指定数组的长度,但不能是NaN,如果是多个会被当做参数列表. new Array(12) // (12) [undefined × 1 ...
- 走进JavaScript
JavaScript的作用:操作HTML元素,响应用户的操作,处理数据: script标签的type或者language可以写也可以不写: script标签防止位置:head结束之前或者body结束之 ...
- 雷哥带你走进Javascript
javascript复习笔记--------------------------------------------1.概念2.面向对象思想3.作用认识4.引入方式5.执行顺序 变量 1)声明方式 x ...
- 走进javascript——解开switch之谜
很早以前就觉得switch很怪异,或者说一直没太理解它,它怪异就怪异在非要给每个语句加上break;不然后面的语句就算不符合条件还是会执行,比如以下这段代码 var num = 2; switch(n ...
随机推荐
- js 构建map 和list
//构建map function Map() { this.arr = new Array(); var struct = function(key, value) { this.key = key; ...
- 1109 Group Photo
Formation is very important when taking a group photo. Given the rules of forming K rows with N peop ...
- NSUserDefaults 添加与删除
//NSUserDefaults会创建一个plist文件,内部存放一个字典 NSUserDefaults *userDefaults = [NSUserDefaults standardUser ...
- jpa命名规范
Keyword Sample JPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname ...
- spring-事件通知实现
ok,今天不知道看啥来着,突然想起来spring内部的事件通知的实现,其实比较简单,简要记一下.然后又回顾了下eventbus的实现,其实俩者的实现方式大同小异吧,只是spring的很多操作都可以直接 ...
- The Seven Percent Solution
Problem Description Uniform Resource Identifiers (or URIs) are strings like http://icpc.baylor.edu/i ...
- Hdu1054 Strategic Game(最小覆盖点集)
Strategic Game Problem Description Bob enjoys playing computer games, especially strategic games, bu ...
- 右键在目录当前打开命令行cmd窗口
Win7系统大家习惯“Win+R”的组合键打开命令提示符. 方法/步骤2 通常情况下,我们点击鼠标右键是没有命令行选项的. 方法/步骤3 在桌面上先按住Shift键,然后鼠标右键,出现选项“在此处打开 ...
- Week Plan:强介入性的效率导师[转]
做产品有三重境界,以效率工具这一细分领域为例: 第一重——发现用户需求,如 Fleep,敏锐地发现团队协作中的关键——聊天,围绕这一需求做足文章; 第二重——预见用户需求,如 ProcessOn,在以 ...
- charles捕获手机端请求数据
charles是mac os中的一款类似于windows下fiddler的代理软件,个人感觉比fiddler功能强大:通过charles可以实现指定的请求响应.篡改请求内容.延迟请求.捕获手机端请求等 ...