JS学习第一天----JS概述

JavaScript概述

今天开始正式学习JavaScript(以后简称JS).所谓的JS语言是面向web的编程语言,我们可能接触过面向过程和面向对象的编程语言.为什么要学习JS呢?因为绝大多数现代网站都使用了JS,并且所有的的现代web浏览器----基于桌面系统,游戏机,平板电脑和智能手机的浏览器----均包含了JS解释器,这使得JS能够称得上是史上使用最广泛的编程语言.JS也是前端开发工程师必须掌握的三种技能之一:描述网页内容的HTML,描述网页样式的CSS以及描述网页行为的JS.

JS是一门动态的,弱类型的编程语言,非常适合面向对象和函数式编程的风格.JS的语法源自JAVA(虽说JAVA很火,但是我不喜欢,但是不喜欢能有什么办法呢,忍着吧),JS的一等函数来自于sScheme,它的基于原型的继承来自于Self.但是学习JS不必了解其他语言.

JS和JAVA没有半毛钱的关系,它们两者之间除了语法看起来类似之外,其他的完全不同,JS早已超出了其”脚本语言”本身的范畴,而成为了一种集健壮性,高效性和通用性为一身的编程语言.

JS和JAVA的对比:


JS


JAVA


面向对象的.对象的类型间没有区别.继承是基于原型机制实现的,且属性和方法可以动态的添加到任何对象之上


基于类的.对象被划分为类和实例,且所有的继承是通过类的层级结构实现的.类或者势力不能动态的添加属性或方法


变量的数据类型无需声明(动态化类型)


变量的数据类型必须声明(静态化类型)


不能自动的写入硬盘


不能自动的写入硬盘

JS的历史

JS是由web发展初期的网景(Netscape)公司创建,并将JS首先用于NetScape浏览器中.不过Netscape正在与ECMA International一道致力于交付一个基于核心JS的,标准化的,国际化的编程语言,即ECMAScript(还能再难听点吗).ECMAScript 在所有支持该标准的应用程序中具有相同的特性。其它公司可以使用开放的标准语言来开发它们的 JavaScript 实现。ECMAScript 标准在 ECMA-262 规范中加以记述。

简单说一下JS版本和ECMAScript版本的区别


JS版本


ECMAScript版本


JS1.1


ECMA-262,第一版基于JS1.1


JS1.2


ECMA-262 在 JavaScript 1.2 发布时尚未完成。由于以下原因,JavaScript 1.2 并不与 ECMA-262,第 1 版完全兼容:

1.Netscape 在 JavaScript 1.2 开发了一些新的特性尚未被 ECMA-262 采纳。

2.ECMA-262 添加了两项新特性:基于 Unicode 的国际化,以及跨平台的一致行为。而 JavaScript 1.2 的某些特性,例如 Date 对象,是依赖于平台的,且具有特定于平台的行为。


JS1.3


JavaScript 1.3 完全兼容于 ECMA-262,第 1 版。

JavaScript 1.3 解决了 JavaScript 1.2 与 ECMA-262 之间的不一致性,同时保留了 JavaScript 1.2 中的附加特性,除了  == 和 != 被修改以便顺应于 ECMA-262 之外。


JS1.4


JavaScript 1.4 完全兼容于 ECMA-262,第 1 版。

ECMAScript 规范的第三版在 JavaScript 1.4 发布时尚未最终完成。


JS1.5


JavaScript 1.5 完全兼容于 ECMA-262,第 3 版。

注:ECMA-262,第 2 版仅包含对第 1 版规范的细微的编辑性的改动和错误修正。由 Ecma International 的 TC39 工作组发布的最新版本为 ECMAScript 版本 5.1

.JavaScript 将总会包含某些 ECMAScript 规范中所没有的特性;JavaScript 兼容于 ECMAScript,同时提供附加特性。

avaScript 文档相较于 ECMAScript 规范

ECMAScript 规范了实现 ECMAScript 的一组需求;它有助于您确定某项 JavaScript 特性是否也为其它 ECMAScript 的实现所支持。如果您想编写仅仅使用 ECMAScript 所支持的特性的代码,那么您可能需要参考 ECMAScript 规范。

ECMAScript 文档的目的不在于帮助脚本程序员;关于脚本编写的信息,请参考 JavaScript 文档。

JavaScript 和 ECMAScript 术语

ECMAScript 规范使用的术语和语法对于 JavaScript 程序员而言,可能会有点陌生。尽管对语言的描述方式在 ECMAScript 中可能不尽相同,但是语言本身还是相同的。JavaScript 支持 ECMAScript 规范中所勾勒出的全部功能。

JavaScript 文档描述了语言中适合于 JavaScript 程序员的方面。例如:

1.JavaScript 文档中没有描述全局对象,因为不会直接用到它。全局对象的属性和方法在 JavaScript 文档中被称为顶层函数和属性。

2.JavaScript 文档中没有讨论 Number 和 String 对象的无参(零个参数)构造器,因为几乎不会用到其生成的对象。无参的Number 构造器返回 +0,而无参的 String 构造器返回 "" (空的字符串)。

JS初探

当学习一门新的编程语言时,应当对照树中的示例边学边动手做,反复演练以加深自己的理解.因为,你需要一个JS编译器(实际上叫做解释器).幸运的是,每一个web浏览器都包含一个JS解释器,或许你的电脑上已经不止有一个浏览器(IE,火狐,360,UC,猎豹).

可以通过在HTML文件里写一个<script>标签来嵌入JS代码,当浏览器加载HTML文件的时候,他会自动执行这段代码.如果运行的是一小段JS代码,则不必每次都这样做.我么可以利用Firefox的一个强大的革命性的插件Firebug(可下载使用)来运行这些小段代码,而且如今的web浏览器带有很多开发工具,可以用来调试,实验和学习.通常在浏览器的”工具”菜单中可以看到类似”开发者工具”或者”web控制台”的选项.可以通过按F12键或者Ctrl+Shift+J快捷键来唤醒控制台.控制台工具通常会在浏览器窗口的顶部或底部,有时候也可以单独打开一个窗口.

通过”开发者工具面板”窗口包含了很多选项卡,可以查看HTML文档结构,CSS样式,网络请求等.其中第一个选项卡是”JS控制台”,可以直接输入JS代码并运行出结果.用这种方式来调试JS既简单又实用.

一些现代浏览器有可能实现了一个简单的控制台API.可以通过使用函数console.log()来向控制台输出消息,实用console.log()来做简单的输出演示,通过这种方式可以方便的调试示例代码.同样也可以通过给alert()函数传入一段文本来弹出一个对话框,但这种输出调试信息的方法更具有侵入性.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-26 05:51:56

JS学习第一天----JS概述的相关文章

【JS学习笔记】js中关于传地址的问题

我觉得初学者应该会遇到很多这样的问题 条件1.不想定义全局变量的时候 条件2.定义了外围变量却又要引用并且修改其中内容的时候 以下转一篇文章 -------------------------------------------------------------------------------------------------------------------------------------------------------- 很多人,包括我,受书本知识消化不彻底的影响,认为 J

Sea.js学习4——Sea.js的配置

可以对 Sea.js 进行配置,让模块编写.开发调试更方便. seajs.config seajs.config(options) 用来进行配置的方法. seajs.config({ // 别名配置 alias: { 'es5-safe': 'gallery/es5-safe/0.9.3/es5-safe', 'json': 'gallery/json/1.0.2/json', 'jquery': 'jquery/jquery/1.10.1/jquery' }, // 路径配置 paths: {

node.js学习第一天

执行代码console.log('hello world'); 2.回调函数 由于node是一个异步事件驱动的平台,所以在代码中我们经常需要使用回调函数.下面是回调函数应用的经典示例: setTimeout(function(){ console.log('callback is called'); },2000); 我们传给setTimeout函数传入了一个匿名函数和一个调用时间2000(毫秒),运行程序后等待2秒,可以看到输出了“callback is called”. 问题一:如果你要为s

vue.js学习第一节

1 <div id="app" class="app"> 2 <p>{{ message }}</p> 3 <p>{{ info }}</p> 4 <!-- 等价于下面的写法--> 5 <div v-html="message"></div> 6 <div v-html="info"></div> 7 <

JS学习第一课

1.js 按照编写顺序执行 2.输出使用document.write. 3.申明数组 var array = [1,2,3,5] ;  var arrStr = ["sgsg","gset","etet"]; 或者  var myArray = new Array();  Array[1] = 10; 4.清空变量时负值为null ; var i = 10 ; i = null;

node.js学习第一篇

这篇从一个基本的读取本地文件案例,大概介绍了node.js的写法,代码如下 1 var fs = require('fs'); 2 var stats = []; 3 fs.readdir(process.cwd(), function(err, files){ 4 console.log(files); 5 console.log(' '); 6 if(!files.length){ 7 return console.log(' \033[31m No file to show!\033[39

JS学习第一篇-Array

Array声明      1.var arr=[1,2,3,.......,n]; 2.var arr=new Array(n); 3.var arr=new Array(1,2,3,...,n); Array对象属性(常用) length    查看数组的长度    [例]var arr=[1,2,3];   document.write(arr.length);   //输出结果3 Array对象方法(常用) 方法名 功能 具体使用例子 concat() 连接两个或更多的数组,并返回结果 v

JS学习第二天----JS语言核心

JS语言核心 有些东西,对于初学者来说,可能看不懂,我在这里只是想说一下,JS里面有这么个情况,并不是说让你掌握,你只需要大致浏览一下就可以了. // 所有在双斜杠之后的内容都属于注释 //变量是表示值的一个符号名字 //变量通过var关键字来声明,案例: var x;//声明一个变量x //值可以通过等号赋值给变量 x=0;  //现在变量x的值为0 x //=>0:通过变量获取其值 //JS支持多种数据类型 x=1; //数字 x=0.01; //整数和实数公用一种数据类型 x="he

Sea.js学习2——Sea.js的API 快速参考

(7 个接口是最常用的) 一.seajs.config:用来对 Sea.js 进行配置. seajs.config({ // 设置路径,方便跨目录调用 paths: { 'arale': 'https://a.alipayobjects.com/arale', 'jquery': 'https://a.alipayobjects.com/jquery' }, // 设置别名,方便调用 alias: { 'class': 'arale/class/1.0.0/class', 'jquery': '