JavaScript历史
- 1995.2月 Netscape公司发布LiveScript,后临时改为JavaScript,为了赶上Java的热浪。
欧洲计算机制造商协会(ECMA)英文名称是European Computer Manufacturers Association - 1997 年,以JavaScript 1.1 为基础。由来自 Netscape、Sun、微软、Borland 和其他一些对脚本编程感兴趣的公司的程序员组成的 TC39(ECMA的小组) 锤炼出了 ECMA-262,也就是ECMAScript1.0。
- 1998年6月,ECMAScript 2.0版发布。
- 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
- 2007年10月,ECMAScript 4.0版草案发布:分歧太大,失败告终。
- 2009年12月,ECMAScript 5.0版正式发布
- 2015年6月17日,ECMAScript 6发布正式版本,即ECMAScript 2015。
JavaScript和ECMAScript的关系
ECMAScript是一种由Ecma国际前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association,制定的标准。
JavaScript是由公司开发而成的,公司开发而成的一定是有一些问题,不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。
简单来说ECMAScript不是一门语言,而是一个标准。符合这个标准的比较常见的有:JavaScript、Action Script(Flash中用的语言)。就是说,你JavaScript学完了,Flash中的程序也会写了。
ECMAScript在2015年6月,发布了ECMAScript 6版本,语言的能力更强。但是,浏览器的厂商不能那么快的去追上这个标准。这些新的特性,我们就业班的深入,也会给大家介绍。
JS介绍
js是一款运行在客户端的网页编程语言。
组成部分
ECMAScript:JavaScript的语法标准。
DOM:JavaScript操作网页上的元素的API
BOM:JavaScript操作浏览器的部分功能的API
特点
简单易用
可以使用任何文本编辑工具编写
只需要浏览器就可以执行程序解释执行
解释执行:事先不编译、逐行执行、无需进行严格的变量声明
编译执行:java c# 转化为.dll可执行文件==>电脑读取.dll可执行文件基于对象
内置大量现成对象,编写少量程序可以完成目标面向过程
作用
表单验证
轮播特效
开发游戏
JS书写位置
Javascript 书写位置
(1)与css类似,直接嵌入到html页面中
(2)文件调用:JavaScript代码写到另一个文件当中(其后缀通常为“.js”),然后用格式为<script src="javascript.js"></script>
的标记把它嵌入到文档中
- 写js代码的时候,分号不能省略。
- 推荐将JS代码写在html结束标签后边、将多个JS文件合成为一个JS文件
Javascript执行过程中的小原理
- html页面中出现<script>标签后,就会让页面暂停等待脚本的解析和执行。无论当前脚本是内嵌式还是外链式,页面的下载和渲染都必须停下来等待脚本的执行完成才能继续,这在页面的生命周期中是必须的。
例如:通过外链式js文件查看加载速度。
输出消息的几种方式
-
alert()
在页面弹出一个对话框,早期JS调试使用。 -
Confirm()
在页面弹出一个对话框, 常配合if判断使用。 -
console.log()
将信息输入到控制台,用于js调试 -
prompt()
弹出对话框,用于接收用户输入的信息。
返回用户输入的信息 -
document.write()
在页面输出消息
document.write("<p><a href='#'>你好</a></p>");
document.write不仅能输出信息,还能输出标签。
转义字符
\"
转双引
\'
转单引
\n
转换行
\r
转回车
Js注释
单行注释 //
多行注释 /* */
快捷键 ctrl+/
变量
会变化的量。
变量是用来存储数据的容器。
- 变量定义
变量定义: var 自定义名称;
var关键字定义变量
- 给变量赋值
变量名=值;
var wukong = 123;//wukong是变量名,123是变量
- 命名规范
- 变量名必须以字符或下划线“_”开头
- 变量可以包含数字、从A至Z的大小字母
- 不能以数字或者纯数字开头来定义变量名。
- 不推荐使用中文来定义变量名。
- 不能使用特殊符号或者特殊符号开头(-除外);
- JavaScript严格区分大小写,computer和Computer是两个完全不同的变量
-
禁止使用javascript的保留关键字作为变量名(见下面的保留关键字图)
JavaScript数据类型
- 简单数据类型:
- Number:数字类型
- String:字符串类型
- Boolean:布尔类型
- undefined:变量未初始化
- null:空类型
typeof undefined;//"undefined"
null === undefined;//false
null == undefined;//true
typeof null;//"object"
复杂数据类型:
Object:对象(引用)
Array:数组
判断数据类
typeof 变量名;
- Number数据类型
- 最基本的数据类型
- 不区分整型数值和浮点型数值
- 能表示的最大值是±1.7976931348623157乘以10的308次方
能表示的最小值是±5 乘以10的-324次方 - 包含十六进制数据,以 0x开头 0到9之间的数字,a(A)-f(F)之间字母构成。 a-f对应的数字是10-15
- 八进制直接以数字0开始,有0-7之间的数字组成。
var num = 0x3f;//十六进制
var num1 = 045;//8进制
alert(num);//63
alert(num1);//37
- 字符串
字符串由单引号或双引号括起
例如单独一个字母也被称为字符串(例如:‘a’)
转义字符\" \'
var str = "你好";
var str1 = '你好啊';
- 比较运算符:
>
,<
,>=
,<=
,==
,!=
var a=1;
var b=2;
alert(a>b);
- 布尔数据类型 Boolean
只有2个值一个是true, 一个是false. 实际运算中true=1,false=0
- JavaScript 特殊类型
取值null 含义:变量未引用,值为空(主动),在内存中找不到这个变量
取值undefined 含义:变量未初始化,变量在内存中是存在的 - Null: Javascript中的关键字,它表示一个特殊值。通常用来描述“空值”。
- undefined: 表示值得空缺。它是变量的一种取值,表示变量未进行初始化(变量没有赋值),在EcmaScript3中,undefined是可读写的变量,可以给它赋任何值。在EcmaScript5中将这个错误进行了修改。只有undefined这一个值。
算术运算符
-
+
加号 - 两个数字类型的变量相加,得到的是一个数字类型。
- 一个数字类型和一个字符串相加,得到的是一个字符串。
-
-
减号 - 两个数字类型的变量相减,得到的是一个数字类型。
- 一个数字类型和一个数字字符串相减,得到的是一个数字类型。
- 一个数字类型和一个非数字字符串相减,得到的是NaN,是一个数字类型。
var num1 = 22;
var num2 = 23;
var str1 = "12";
var str2 = "nihao";
var str3 = "8";
alert(typeof (num1-str1));//number
alert(num1-str2);//NaN
alert(str1-num1);//-10
alert(str1-str2);//NaN
alert(str1-str3);//4
NaN, not a number,表示不是一个数字
判断是不是一个数字使用: isNaN(x)
(typeof NaN)是number/
除号两个数字类型的变量相除,得到的是一个数字类型。
一个数字类型和一个数字字符串相除,得到的是一个数字类型。
一个数字类型和一个非数字字符串相除,得到的是NaN,是一个数字类型。
0做为除数的时候,得到结果 Infinity (无限大),是一个数字类型。
var num1 = 24;
var num2 = 23;
var str1 = "12";
var str2 = "nihao";
var str3 = "8";
alert(num1/0);//Infinity
alert(num1/str1);//2
alert(num1/str2);//NaN
alert(typeof (num1/str2));//number
- Infinity: 无穷大 例如: var number=7/0
- % 取余数
- 优先级:有()先计算()里边的
带操作的赋值运算
在javascript中,程序执行的过程是从上而下的顺序执行。遇到错误,不会再往下执行。