前端零基础课程--第九节课(javascript开始)
JavaScript:运行于javascript解释器、引擎中的解释型脚本语言。主要用于编写Web应用程序的逻辑控制。目前PC、平板、手机、机顶盒中安装的浏览器都支持JavaScript。
发展史:
1991 第一个网页诞生
1992 Nombas ScriptEase
1995 网景Netscape LiveScript(JavaScript)
1996 Microsoft IE3.0 JScript
1997 JavaScript1.1 ECMA-262
Javascript的特点:
任意文本编辑器编写
语法灵活多变
无需编译,有解释器执行
弱类型
基于对象
应用场景
客户端:客户端数据计算、表单验证、浏览器事件的触发和处理、网页特效制作、服务器提交异步数据
服务端:分布式运算、实时服务器
两种运行环境:
独立安装的JS解释器(Node.js)
嵌入到浏览器内核中的JS解释器
JS由三部分组成:
1. 核心(ECMAScript)
2. 文档对象模型(DOM,DocumentObject Model)
3. 浏览器对象模型(BOM,BrowserObject Model)
使用JavaScript
浏览器内核由两部分构成:
内容排版引擎---解析HTML/CSS
脚本解释引擎---解析JS
浏览器 内核名称 排版引擎 脚本引擎
IE Trident --- Chakra
Firefox Gecko --- 猴子系列
Safari Webkit Webcore Nitro
Chrome Webkit Webcore V8
Opera Presto --- Carakan
Opera(2013) Webkit Webcore V8
搭建Javascript运行环境:
1.node.js
2.使用浏览器内嵌解释器:
a) 直接在控制台输出语句
b) 将JS代码嵌入到页面中
练习:
1.创建页面,创建script元素,在页面中用红色打印自己的姓名。
2.在页面中再添加一个按钮,为按钮添加点击事件,在控制台输出自己的姓名。
3.使用外部脚本文件,在上面页面中实现上述两步的功能
JavaScript调试:
JS错误:
解释型语言,若某行代码错误,则解释器终止此次执行
但不会影响后续脚本块的执行,以及后续HTML解析
练习:调试器使用
1.创建页面,编写script,其中使用三行语句尝试在页面中打印hello1,hello2,hello3,第二句刻意出错,观察三行代码输出结果。
2.再编写一个script,其中使用三行语句尝试控制台输出world1,world2,world3,其中第二行刻意错误,注意观察输入结果
语法规范:
语句:
表达式、关键字、运算符组成
大小写敏感
使用分号(;)或者换行结束
注释:1.// 行注释 2.块注释 /* ... */
变量和常量
变量:存储信息的容器,是会变化的量
声明变量:
var myUserName='tom';
多个变量声明:var name1=10,name2=20,name3=30;
不允许使用的变量名包括关键字和保留关键字
标准关键字:break,case,default,continue,delete,do,if,else,true,false,finally,for,function,in,instanceof.....
保留关键字:class/int/float
使用变量
初始化:赋值符号=
变量存取:var userName='tom';console.log(userName);userName='Jerry';
常量的声明和使用:
常量,是值不能改变的量
const 关键字
惯例常量名称命名为大写
数据类型
类型:基本类型、引用类型
基本类型:
number即可以表示32位整数,也可以表示64位浮点数
整数:十进制、八进制、十六进制
十进制:逢十进一的整数,如123456
八进制:逢八进一的整数,如0123456
十六进制:逢十六进一的整数,如0xFF0000
浮点数
小数点计数:3.1415
科学计数法:4.3e23,4.3e-23
string 字符串
由Unicode字符、数字、标点符号组成的序列
JS中不区分字符串和字符
首尾由单引号或双引号括起来
特殊字符需要转义:\n,\r(回车),\t(制表符),\\,\',\"
boolean布尔型
true false
1 0
true==1,false==0
undefined 未定义
数据类型转换:
隐式转换
数字+字符串:字符串
数字+布尔值:true=1 false=0
字符串+布尔值:字符串true='true'
布尔值+布尔值:布尔值转换为数值1或0
/*错误总结:
1.RenferenceError引用错误
2.SyntaxError语法错误
3.TypeError类型错误*/