JS01
Javascript的历史来源
94年网景公司 研发出世界上第一款浏览器。
95年 sun公司 java语言诞生
网景公司和sun合作。
Java+script ===> javascript
W3c规范
☞结构标准 html
☞表现标准 css
☞行为标准 js
JavaScript和ECMAScript的关系
ECMAScript是一种由Ecma国际前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association,制定的标准。
JavaScript是由公司开发而成的,公司开发而成的一定是有一些问题,不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。
简单来说ECMAScript不是一门语言,而是一个标准。符合这个标准的比较常见的有:JavaScript、Action Script(Flash中用的语言)。就是说,你JavaScript学完了,Flash中的程序也会写了。
ECMAScript在2015年6月,发布了ECMAScript 6版本,语言的能力更强。但是,浏览器的厂商不能那么快的去追上这个标准。这些新的特性,我们就业班的深入,也会给大家介绍。
今天的JavaScript:承担更多责任
2003年之前,JavaScript被认为“牛皮鲜”,用来制作页面上的广告,弹窗、漂浮的广告。什么东西让人烦,什么东西就是JavaScript开发的。所以浏览器就推出了屏蔽广告功能。
2004年JavaScript命运开始改变了,那一年谷歌公司,开始带头使用Ajax技术了,Ajax技术就是JavaScript的一个应用。并且,那时候人们逐渐开始提升用户体验了。
2010年的时候,人们更加了解HTML5技术了,HTML5推出了一个东西叫做Canvas(画布),工程师可以在Canvas上进行游戏制作,利用的就是JavaScript。
2011年,Node.js诞生,使JavaScript能够开发服务器程序了。
今天,JavaScript工程师是绝对的吃香,能够和iOS、Android工程师比肩,毫不逊色的。
现在,公司都流行WebApp,就是用网页技术开发手机应用。什么意思呢?手机系统有iOS、安卓、windows phone。那么公司比如说开发一个“携程网”APP,就需要招聘三队人马,比如iOS工程师10人,安卓工程师10人,windows工程师10人。共30人,工资开销大。并且,如果要改版,要改3个版本。所以,现在公司,都用web技术,用html+css+javascript技术来开发app。好处是不用招聘那么多工程师,只需要几个前端开发工程师即可。并且也易于迭代,就是网页一改变,所有的终端都变了。
认识js
☞概念
Js是一门运行在浏览器客户端的脚本编程语言。
☞组成部分
◆ecmascript js标准
◆Dom 通过js操作网页元素
◆bom 通过调用api操作浏览器
☞ 特点
◆简单易用
◆基于对象
编程中万事万物皆对象。
相对的是:基于过程
◆解释执行(js属于解释执行的语言)
Js源代码直接通过js引擎执行。
编译执行:
Java ,c# 源代码===》计算机课执行文件.dll===>计算机最后执行的是源代码的可执行文件.dll.
☞使用范围
◆表单验证
◆轮播特效
◆游戏开发
Js书写位置
☞内嵌式写法
☞外链式写法
外部js文件的引用:
◆新建一个js文件
◆通过script标签中的src属性将外部js引入到html页面中
补充内嵌式写法位置问题:
☞推荐将script标签放到body标签后面。
补充外链式写法问题:
☞推荐将多个js文件合并成一个js文件去加载。
Js初体验
☞在页面中输入消息的几种方法
◆在页面中以弹窗的形式输出消息
alert(“信息”);
早期用来配合js代码调试。
◆页面输出消息显示 确定和取消按钮
confirm(“消息”);
一般和条件判断配合使用
◆接收用户输入信息
prompt(“信息”);
◆控制台显示消息的方式
console.log("您好");
代码调试
◆在页面中输出消息
document.write("大家好");
该方法内部可以包含html标签。
☞js中的代码注释
◆单行注释 //
◆多行注释 /* */
☞在写js代码过程中分号 “ ; ” 必须的写。
变量(重点)
☞变量
会变化的量。
变量就是用来装数据的容器。
☞变量的定义
通过var 关键字定义变量
☞变量的赋值
通过赋值运算符”=”给变量赋值。
注意:如果想要判断两个数据是否相同,不能使用该运算符。
注意:如果定义了变量,将变量在页面中显示,不需要给变量添加引号。
◆在js中是严格区分字母大小写。
◆变量名中不能有空格
☞变量的命名规范
◆不能使用纯数字或者以数字开头定义变量
◆不推荐使用汉字定义变量
◆不能使用纯特殊字符或者以特殊字符开头(“_”除外)定义变量
◆不能使用关键字定义变量
◆不推荐使用保留字定义变量
数据类型
☞简单数据类型
◆number 数字类型
◆string 字符串类型
◆boolean 布尔类型
◆undefined 变量未初始化
◆null object
☞复杂数据类型
◆ object 对象
◆Array 数组
数字类型(number)
所有的数字赋值给以变量,那么该变量的数据类型就是数字类型(number)
☞ 小数
☞ 负数
☞ 正数
数字类型的取值范围:
◆ 能表示的最大值是±1.7976931348623157乘以10的308次方
能表示的最小值是±5 乘以10的-324次方
数字类型的表示方式:
◆十进制表示法
◆十六进制表示法
以0x开头 数字0-9 和 a(A)-f(F)
◆八进制表示法
以数字0开头 0-7之间的组合。
字符串类型
◆所有用双引号或者单引号包含起来的都是字符串类型。
☞转义字符
\” 转双引号
\’ 转单引号
\r 回车
\n 换行
布尔数据类型(boolean)
☞true
☞false
数据类型转换中 数字1:带表true 数字0 代表false.
比较运算符
> < >= <=
比较运算符最后的结果为: true 和false
undefined 变量未初始化
定义了变量,但是没有过给变量进行赋值。
变量取值为null的时候
◆ 该变量的引用为空
数据类型的判断
typeof(变量)
数据类型判断
运算符
+
-
*
/
% 取余(获取余数)
() 优先级
☞加运算
◆两个数字类型变量相加,结果为数字类型
◆一个数字类型和一个字符串类型变量相加,最后结果为字符串,加号起的是一个连接的作用。
☞减运算
◆如果两个数字类型的变量相减,最后的结果为数字类型。
◆如果一个数字类型的变量和一个数字的字符串类型的变量相减,最后结果为数字类型。
NaN: not a number 不是一个数字
NaN的数据类型属于number类型。
◆如果一个数字类型的变量和一个非数字类型的变量相减,最后结果为NaN。
☞除运算
◆如果两个数字类型的变量相除,最后结果为数字类型
◆如果一个数字类型的变量和一个数字的字符串变量相除,最后结果为数字类型。
◆如果一个将数字0作为除数,得出的结果是infinity(无穷大)
infinity的数据类型属于number类型
☞取余
获取最后结果的余数。
☞优先级()
有括号先计算括号里面的数据
赋值的运算符