JavaScript基础

为什么学习JavaScript?
JavaScript在网页中占据非常重要的位置,可以实现验证表单、制作特效等功能
1、客户端表单验证
在登录注册时,如果某项信息格式输入错误,或没有输入内容,表单页面将及时给出错误提示,这减轻了服务器端的压力,这是JavaScript最常用的场合
2、页面动态效果
在JavaScript中,可以编写响应鼠标单击等事件代码,创建动态页面特效,从而高效控制页面的内容。例如:层的切换特效、级联菜单特效等,它们可以在有限的页面空间里展现更多的内容,增加客户端的体验,从而使我们懂得网站更加有动感、有魅力、吸引更多的浏览者
 
什么是JavaScript
JavaScript是一种描述性语言,也是一种基于对象(Object)和·事件驱动(Event Driven)的,并具有安全性能的脚本语言,JavaScript应用程序都要下载到浏览器的客户端执行,从而减轻了服务器端的负担
特点:
  • JavaScript主要用于在HTML页面中添加交互行为
  • JavaScript是一种脚本语言,语法和Java类似
  • JavaScript一般用来编写客户端的脚本
  • JavaScript是一种解释性语言,编执行边解释
 
JavaScript的组成
1、ECMAScript标准
ECMAScript是一种开发的、被国际上广为接受的、标准的脚本语言规范。它不与任何具体的浏览器绑定
ECMAScript主要描述了一下内容:
  • 语法
  • 变量和数据类型
  • 运算符
  • 逻辑控制语句
  • 关键字、保留字
  • 对象
ECMAScript是一个描述,规定了脚本语言的所有属性、方法和对象的标准,因此在使用Web客户端编写脚本语言编码时一定要遵循ECMAScript标准
2、浏览器对象模型
浏览器对象模型(Browser Object Model,BOM),提供了独立于内容与浏览器窗口进行交互的对象,使用浏览器对象模型可以实现与HTM的交互,例如:网上常见的弹出窗口、前进后退等功能都是浏览器对象控制的
3、文档对象模型
文档对象模型(Document Object Model,DOM),是HTML文档对象模型(HTML DOM)定义的一套标准方法,用来访问和操作HTML文档,如:网上商城常见的随鼠标移动显示大的图片、弹出小提示等都是文档对象的功能
 
JavaScript的基本结构
通常,JavaScript代码是用<script>标签嵌入HTML文档中的。如果需要将多条JavaScript代码嵌入一个文档中,只需要每条JavaScript代码都封装在<script>标签中即可。浏览器将检查JavaScript语句的语法,如果有任何错误,则会警告框中显示;如果没有错误,则浏览器将编译并执行语句
1、JavaScript的基本结构
<script type="text/Javascript">
JavaScript语句
</script>
其中type是<script>标签得属性,用于指定文本使用的语言类别为text/JavaScript
document.write()用来向页面输出可以包含HTML标签得内容
 
2、JavaScript的执行原理
在JavaScript的执行过程中,浏览器客户端与应用服务器端采用请求/响应模式进行交互,如图所示:
 
处理过程
(1)、浏览器客户端向服务器发送请求:一个用户在浏览器的地址栏中输入要访问的页面
(2)、数据处理:服务器端将某个包含JavaScript的页面进行处理
(3)、发送响应:服务器端将含有JavaScript的HTML文件处理页面发送到浏览器客户端,然后由浏览器客户端从上至下逐条解析HTML标签和JavaScript,并将页面效果呈现给用户
(4)、包含JavaScript的页面只要下载一次即可,这样能减少不必要的网络通信
(5)、JavaScript程序由浏览器客户端执行,而不是有服务器端执行的因此能减轻服务器端的压力
 
在网页中引用JavaScript的方式
嵌入网页时有以下三种方式:
  • 内部JavaScript文件
  • 使用外部JavaScript文件
  • 直接在HTML标签中
1、内部JavaScript文件
直接使用script标签将JavaScript代码加入HTML文档中
2、使用外部JavaScript文件
例如:
 
注意:外部文件不能包含<script>标签,通常将扩展名为.js的文件放到网站目录中单独存放脚本的子目录中,这样便于维护和管理
3、直接在HTML标签中
例如:
 
三种方式的应用场合:
  • 内部JavaScript文件适用于JavaScript特效代码量少,仅用于单个页面
  • 外部js文件则适用于代码较多,重复应用于多个页面
  • 直接在标签中写JavaScript则适用于极少代码,仅用于当前标签,但是这种方式增加了HTML代码
 
变量的声明和赋值
JavaScript是一种弱类型语言,没有明确的数据类型,也就是说在声明变量时,不需要指定变量的类型,变量的类型由赋给变量的值决定
语法:var 合法的变量名;
变量命名规则:可以由数字、字母、下划线和”$“符号组成,但首字母不能是数字,并且不能使用关键字命名;可以在声明变量时赋值,大小写不同的变量名表示不同的变量
规范:
  • 千万要注意JavaScript区分大小写,特别是变量的命名、语句关键字等,这种错误有时很难查找
  • 变量可以不经过声明直接使用,但这种方法很容易出错,也很难查找排错,因此不推荐使用,在使用变量之前,请先声明后使用
 
数据类型
常用的基本数据类型:
  • undefined(未定义类型)
  • null(空类型)
  • number(数值类型)
  • String(字符串类型)
  • boolean(布尔类型)
1、typeof
用来判断一个值或变量究竟属于那种数据类型
语法:typeof(变量赋值)
返回结果:
  • undefined:如果变量是undefined类型的,则返回undefined类型的结果
  • number:如果变量时number类型的,则返回number类型的结果
  • String:如果变量是String类型的,则返回String类型结果
  • boolean:如果变量是boolean类型的,则返回boolean类型的结果
  • object:如果变量是null类型的,或者变量是一种引用类型,如对象、函数、数组,则返回object类型的结果
2、undefined类型
undefined类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值是undefined
 
3、null类型
只有一个值的类型是null,是个表示“什么都没有”的占位符,可以用来检测某个变量是否被赋值
4、number类型
既可以表示32位的整数,又可以表示64位的浮点数,整数也可以表示为八进制或十六进制,八进制首数组必须是0,后面的数组任意(0~7),十六进制首字母必须是0,后面任意(0~9和A~F),NaN(Not a Number)表表示非数
5、String类型
在JavaScript中,字符串是一组被引号(单引号或双引号)括起来的文本,不对字符或字符串加以区别
JavaScript语言中的String也是一种对象,length表示字符串的长度(包括空格)
语法:字符串对象.length;
使用字符串对象的语法:字符串对象.方法名();
 
 
toLowerCase()
把字符串转化为小写
toUpperCase()
把字符串转化为大写
6、boolean类型
称为:布尔类型数据或逻辑型数据,只有两个值:True和False
 
数组
JavaScript中的数组也是具有相同数据类型的一个或多个值的集合。数组用一个名称存储一系列的值,用下标区分数组中的每个值,数组下标从0开始
1、创建数组
语法:var 数组名称=new Array(size);
其中,new是用来创建数组的关键字,Array表示数组的关键字,而size表示数组中可存放的元素总数
2、为数组元素赋值
语法:var fruit new Array("apple","orange","peach",“banana”);
或者:var fruit =[“apple”,“orange”,“peach”,“banana”];
3、访问数组元素
可以通过数字的名称和数组下标直接访问数组的元素,访问数组的表示形式:数组名[下标];
4、数组的常用属性和方法
 
join的使用方法:join(分隔符);
 
运算符号
 
==表示等于,===表示恒等于,!==表示不恒等于,都是用于比较,但是==用于一般比较,===用于严格比较,==在比较时可以转换数据类型,===严格比较,只要数据类型不匹配就返回false
 
逻辑控制语句
1、条件语句
(1)、if结构
语法:if(表达式){
//JavaScript语句1;
}else{
//JavaScript语句2;
}
(2)、switch语句
语法:switch(表达式){
case 值1:
//JavaScript语句1;
break;
case 值2:
//JavaScript语句2;
break;
case 值3:
//JavaScript语句3;
break;
default :
//JavaScript语句n;
break;
}
2、循环结构
(1)、for循环语句
语法:for(初始化;条件;增减量){
//JavaScript语句;
}
(2)、while循环语句
语法:while(条件){
//JavaScript语句;
}
(3)、do-while循环语句
语法:do{
//JavaScript语句;
}while(条件);
(4)、for-in循环语句
语法:for(变量 in 对象){
//JavaScript语句;
}
(5)、中断循环
  • break:可以立即退出整个循环
  • continue:只是退出当前的循环,根据判断条件决定是否进行下一次循环
注释
单行注释://
多行注释:/*.......*/
 
关键字和保留字
关键字标识了ECMAScript语句耳朵开头和结尾,关键字是保留的,不能做变量名或函数名
JavaScript的关键字
关键字
关键字
关键字
关键字
关键字
break
case
catch
continue
default
delete
do
else
finally
for
function
if
in
instanceof
new
return
switch
this
throw
try
typeof
var
void
while
with
保留字在某种意义上是为将来的关键字而保留的单词,因此保留字不能被用作变量名或函数名
JavaScript的保留字
保留字
保留字
保留字
保留字
保留字
abstract
boolean
byte
char
class
const
debugger
double
enum
export
extends
final
interface
goto
implements
import
int
protected
long
native
package
private
synchronized
public
short
static
super
float
throws
transient
volatile
       
 
常用的输入/输出
1、警告(alert)
alert()方法会创建一个特殊的小对话框,该对话框带有一串字符和一个“确定”按钮
语法:alert(“提示信息”);
警告对话框是当前运行的网页弹出的,在对该对话框做出处理前,当前网页将不可用,后面的代码也不会被执行,只有对警告对话框进行处理后(单击“确定”按钮或直接关闭),当前网页才会继续显示后面的内容
2、提示(prompt)
prompt()方法会弹出一个提示对话框,等待用户输入一行数据
语法:prompt(“提示信息”,“输入框的默认信息”);
prompt()方法的第一个参数值显示在对话框上,通常是一些提示信息;第二个参数出现在用户输入的文本框,且被选中,作为默认值使用。如果省略第二个参数,则提示对话框的输入文本框中会出现“underfined”,可以将第二个参数的值设置为空置字符串
 
语法约定
1、大小写区分
JavaScript的关键字永远是小写的
内置对象,如Math和Date是以大写字符开头的
对象的名称通常是小写
2、变量、对象和函数的名称
与Java的命名规范类似,当声明使用变量、对象或函数时,名称可以包括大写字母、小写字母、数字、下划线和美元符号($),但必须以字母、下划线或美元符号($)开头
3、分号
JavaScript允许开发者自行决定是否以分号结束一行代码,如果没有分号,JavaScript就将行代码的结尾看作该语句的结尾
 
Chrome开发人员工具
1、语法错误的排除
chrome的开发工具常用八个大模块,主要功能如下:
  • Elements:用于查看和编辑当前页面中的HTML和CSS元素
  • Console:用于显示脚本中所输出的调试信息,或运行测试脚本等
  • Sources:用于查看和调试当前页面所加载的脚本的源文件
  • NetWork:用于查看HTTP请求的详细信息,如请求头、响应头及返回内容等
  • TimeLine:用于查看脚本执行时间、页面元素渲染时间等信息
  • Profiles:用于查看CPU执行时间与内存占用等信息
  • Resource:用于查看当前页面所请求的资源文件,如HTML、CSS样式文件等
  • Audits:用于优化前段页面,加速网页加载速度等
2、逻辑错误的排除
(1)、确定断点得到位置
(2)、单步调试
(3)、修改错误
 
常用系统函数
1、parseInt()
parseInt()函数课解析一个字符串,并返回一个整数
语法:parseInt(“字符串”);
 
2、parseFloat()
parseFloat()函数可解析一个字符串,并返回一个浮点数
语法:parseFloat(“字符串”);
parseFloat()函数与parseInt()函数的处理方式相似,从位置0开始查看每一个字符,直到找到一个非有效的字符为止,然后把该字符的字符串转换为浮点数
3、isNaN()
isNaN()函数用于检查其参数是否是非数字
语法:isNaN(x);
如果x是特殊的非数字值,则返回是true,否则返回false;
 
自定义函数
1、定义函数
 
  • function是定义函数的关键字,必须有
  • 参数1、参数2等是函数的参数,本身没有类型的检查和限定,函数中的参数是可选的,分为有参函数和无参函数
  • “{”和“}”定义了函数的开始和结束
  • return语句用来规定函数返回的值
2、调用函数
要执行一个函数,必须先调用这个函数,当调用这个函数时,必须指定函数名及其后面的参数。函数的调用一般和元素的事件结合使用
语法:事件名=“函数名()”;
 
变量的作用域
JavaScript根据作用范围不同分为局部变量和全局变量
局部变量是在函数内声明的变量,,只有在该函数中且位于该变量之后的代码中可以使用这个变量,如果在之后的其他函数中声明了与这个局部变量同名的变量,则后声明与这个局部变量毫无关系
全局变量是在所有函数在外的脚本中声明的变量,作用范围是该变量定义后的所有语句,包括其后定义的函数中的代码
posted @ 2018-07-14 14:50  cairui  阅读(191)  评论(0编辑  收藏  举报