第一节、JavaScript历史
战国时代
1995年 Netscape(网景) 发明了 LiveScript 后改名为JavaScript
1996年,微软发布了 IE 3.0 并搭载了一个 JavaScript 的克隆版,叫做 JScript
一统江湖
ECMAScript:欧洲计算机制造商协会(ECMA)通过ECMA-262标准化的脚本程序设计语言
1997年06月,ECMAScript 1.0版
1998年06月,ECMAScript 2.0版
1999年12月,ECMAScript 3.0版
2007年10月,ECMAScript 4.0版(版本改变太激进,死了)
2009年12月,ECMAScript 5.0版
2011年06月,ECMAscript 5.1版发布,成为ISO/IEC(国际标准化组织及国际电工委员会)16262:2011)标准
2015年06月17日,ECMAScript 6版,可以叫ECMAScript 6(ES6),也可以叫ECMAScript 2015(ES2015)
未来发展
javascript未来将由ECMA以每年一个版本的方式进行迭代更新,版本号也会按照年份来排序,ES2015、ES2016……
第二节、基础知识
特点
JavaScript代码可在内部,外部和行内
外部引入js文件:通过
执行按照顺序执行
页面输出
alert("Hello Word"); //系统弹窗console.log(); //输出在控制台document.write(); //打印在页面document.getElementById().innerHTML = "Hello Word";document.getElementById("box").style.color = "red";
基本语法
注意行尾加分号;
换行书写
注释:// 或者 /* */
关键词
下面是 ECMAScript 关键字的完整列表:
break else new varcase finally return voidcatch for switch whilecontinue function this withdefault if throwdelete in trydo instanceof typeof
定义变量
变量variable(临时存储的容器)
//变量:临时存储信息的容器,可以复用
var name; //变量的声明,并起名叫 name
name = "tt"; //为变量赋值, = 等号:是把右侧的值,赋值给左侧的变量名;
alert(name);
声明变量并同时赋值
//简写
var a = 3;console.log(a); //3a = "hello";console.log(a); //helloa = true;console.log(a);//true
//同名变量会产生覆盖
var name = "小红";var name = "小丽";alert(name); //小丽
变量名大小写敏感
var Name="小花";var name="小毛";
命名规范
//可读性高的变量名
var a_local //使用下划线连接关键字var _username= "tt"; //使用下划线开头var $total; //用$开头var password; //用小写字母var seatNumber = 5; //驼峰命名法var isHappy = true; //布尔值使用is开头
//不能使用关键字(保留字)因为语言私有,例如:
var false;var true;var boolean;var var;
//可以使用中文,但不推荐
var 果果 = "中文变量";
javascript
第三节、数据类型
不同的数据,需要定义不同的数据类型,描述天气:天气情况(字符串:"晴"),气温(数字:25°),是否下雨(布尔值:true/false),在js中有以下几种数据类型:
字符串(String)
字符串是以单引号或双引号括起来的任意文本,请注意'' 或 "" 本身只是一种表示方式,不是字符串的一部分,因此:"abc" 只有a b c 这个三个字符
在""包括的字符串中可以直接使用'' ,反之同理!
alert( " 果果,'你好'啊! " );alert( ' 果果,"你好"啊! ' );
如果在""中包括双引,需要用反斜杠\" 单引号同理
alert( " 果果,\" 你好\ " 啊 ");alert('果果,\'你好\'啊');
用算术运算符 + 可以完成字符串拼接
alert("welcome" + "to" + "china");alert("welcome" + " " + "to" + " " + "china");
转义字符:\n换行
console.log("你好,\n今天去哪里玩呀!")
注意:“”和“ ” 不同,前者是空字符串,后者是空格字符串
alert("");alert(" ");
数字(Number)
JS不区分整数和浮点数,统一用number表示,以下都是合法的number类型
123; //整数0.456; //浮点数1.2345e6; //科学计数法-99; //负数NaN; //NaN表示Not a Number,当无法计算结果是用NaN表示
布尔值(Boolean)
boolean里面只有两个值:true/false,表示真或假,开或关
布尔值的意义:让计算机能够有逻辑的去判读事物
未定义(Undefined)
//undefined有两种结果
//1、真的没定义
alert(typeof b); //undefined
//2、定义了,但是没有放东西进去
var b;alert(b); //undefined
JS弱类型语言的特点总结:
变量必须有个明确的数据类型,否则是不规范写法(值是undefined)
变量的类型可以变:
var a = "tt";alert(typeof a); //stringa = 123;alert(typeof a); //number
变量只定义不赋值,就是undefined,undefined类型只有一个值undefined ,表示未定义或只声明未给值 的变量
直接输出一个未定义的变量会报错
对象(Object)
在ECMA-262中把对象定义为:“无序属性的集合,其属性可以包含基本值、对象、或者函数”。js中内置了如下的对象:
对象 说明
Object 是所有JS对象的超类(基类),JS中的所有对象都是继承自Object对象的
Array 数组对象--定义数组属性和方法
Number 数字对象
Boolean 布尔对象--布尔值相关
Error 错误对象--处理程序错误
Function 函数对象--定义函数属性和方法
Math 数学对象
Date 日期对象
RegExp 对象正则表达式对象--定义文本匹配与筛选规则
String 字符串对象--定义字符串属性和方法
后面的章节会详细讲解。
空( Null)
null表示一个空对象,“什么都没有”的意思,用来表示无值
通常用作一个空引用或一个空对象的预期,就像一个占位符