浏览器发展史
1991年 WorldWideWeb →1994年Netscape (网景)→ 2002年IE主导浏览器市场→
2003年Safari→ 2004年Firefox→2008年Chrome → ……
JavaScript
时间:1995年
创始人:Brendan Eich
ECMAScript
通过ECMA-262标准化的脚本程序语言,JavaScript是其实现和扩展。
1999年ES3发布,成为JavaScript的通行标准。
2009年ES5发布,在所有现代浏览器中得到了相当完全的实现
2015年ES6发布,被部分实现于大部分现代浏览器
补充
广义的HTML5是包括HTML、CSS、JavaScript在内的一套技术组合
狭义的HTML5更多的是指JavaScript
*JavaScript概念
JavaScript是基于对象和事件驱动,并具有安全性能的客户端脚本语言,弱类型的语言。
*JavaScript组成
1.ECMAScript(核心)
2.DOM(文档对象模型)document object model
3.BOM(浏览器对象模型)browser object model
*JavaScript的编写
1.在HTML标签中直接写入JS代码(用的少)
<div id='div1' onclick='alert(“你好”)'>点击</div>
2.在HTML文档中写入代码
<script></script>
3.在*.js文件中写入JS代码(工作中常用)
<script src=”a.js”></script>
4.注释
//单行注释
/*
多行注释
多行注释
多行注释
*/
一般来说,每句语句后都以英文;结尾
*JavaScript变量的声明规则
1.变量是由数字、字母、下划线(_)和美元符号($)的一种或者几种组成,严格区分大小写
2.不能以数字开头
3.不能是关键字或保留字,例如:If else do while for in 等
变量的声明和定义
var a = 10;
var是关键字, a是变量名, =是赋值符号 ,10是值
*算术、赋值、关系、运算符
1.算术运算符
+ - * / %
2.赋值运算符
= += -= *= /= %=
3.关系运算符
> < >= <= == != 还有三个等号以及!加两个等号(初次使用优快云 由于前面有两个等号导致后面的等号打不出来了,见谅。有知道的麻烦告诉我)
关于一个等号,两个等号,三个等号的区别(个人理解):
一个等号当然就是代表赋值了,把等号后面的值赋给等号前面的变量
两个等号就是我们传统意义上的等于,不在过多解释
三个等号(===)代表全等于,不仅在两个等号的基础上相等(也就是说不仅值相等),在变量的类型上也相等
*JavaScript的输出
alert(“弹窗”);
document.write(“写在文档中,就当一个不独占一行的p标签理解吧哈哈哈”);
console.log(“显示在检查中,一般用户不会打开看他”);
特别要说一句,js的解析是从上而下一条一条开始的
*JavaScript数据类型
数值 Number
不管是整数、小数、正数、负数均为Number类型
字符串 String
定义时用""或’'包裹(英文引号)
布尔 Boolean
只有两个值 true或false
undefined
表明要么声明了没有赋值,要么压根没声明
null
表明为空
对象 object
以后提到
*JavaScript类型转换
1.显式转换
通俗的讲就是可以通过代码看出来转换成什么类型
console.log(Number("")); //0
console.log(Number(" ")); //0
console.log(Number(undefined)); //NaN
console.log(Number(null)); //0
console.log(Boolean(1)); //true
console.log(Boolean(0)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean("")); //true
console.log(Boolean(" ")); //false
2.隐式转换
对于+,只要有一个字符串类型,都转换为字符串类型
对于- * / %,都转换为数值类型
console.log("a"+"b"); //ab
console.log(10+"20"); //1020
console.log(10-"20"); //-10
console.log("a"-10); //NaN
console.log(true+10); //11
console.log(undefined+10); //NaN
console.log(undefined+"10"); //undefined10
console.log(true-10); //-9
console.log(true+undefined); //NaN
3.关系转换
如果两个类型都是字符串,按位比较某位上的字符是数字,比较数字大小
是字符的话,按照ASCII码值进行比较
其他类型转换为数值
console.log(10>"2"); //true 字符串转数值
console.log("10">"2"); //flase 按位比较 1<2
console.log(true>10); //false
console.log("true">"a"); //true 按ASCII码值比较,不知道ASCII的百度一下
console.log(undefined>-1); //false
console.log(null>-1); //true
console.log("null">"1"); //true
初学小练习
//为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
var a = 89;
var day = 0;
var hour = 0;
day = parseInt(a/24); //取整数
hour = a % 24;
document.write("战士连续作战:" + "<br/>" + day + "天" + hour + "小时" + "<br/>");
/*
小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。
它需要一个程序将华氏温度(80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)保留3位小数
*/
var h = 80;
var c = 5 / 9.0 * (h - 32);
c = c.toFixed(3); //保留三位小数
document.write("摄氏度为:" + "<br/>"+ c + "℃");