什么是JavaScript?
JavScript是一门跨平台,面向对象的脚本语言,来控制网页行为的,它能使网页可交互
W3C标准:网页主要由三部分组成
结构:HTML
表现:CSS
行为:JavaScript
JavaScript和Java是完全不同的语言,不论是概念还是设计。但基础语法类似。
JavaScript(简称:JS)在1995年由Brendan Eich 发明,并于1997年成为一部ECMA标准。
ECMAScript 6(ES6)是最新的JavaScript版本(发布于2015年)。
JavaScript引入方式
1.内部脚本:将JS代码定义在HTML页面中
在HTML中,JavaScript代码必须位于<script>与</script>标签之间
提示:
在HTML文档中可以在任意地方,放置任意数量的<script>
一般把脚本置于<body>元素的底部,可改善显示速度,因脚本执行会拖慢显示
2.外部脚本:将JS代码定义在外部JS文件中,然后引入到HTML页面中
外部文件:demo.js alter("hello JS~");
引入外部js文件 <script src="../js/demo.js"></script>
注意:
1.外部脚本不能包含 <script> 标签
2.<script> 标签不能自闭
书写语法
1.区分大小写:与Java一样,变量名,函数名以及其他一切东西都是区分大小写的
2.每行结尾的分号可有可无
3.注释:
- 单行注释://注释内容
- 多行注释:/*注释内容*/
4.大括号表示代码块
输出语句
使用window.alert()写入警告框
使用document.write()写入HTML输出
使用console.log()写入浏览器控制台
变量
JavaScript中用var关键字(variable的缩写)来声明变量
var test=20;
test="张三";
JavaScript是一门弱类型语言,变量可以存放不同类型的值
变量名需要遵循如下规则:
- 组成字符可以是任何字母,数字,下划线(_)或美元符号($)
- 数字不能开头
- 建议使用驼峰命名
ECMAScript 6 新增了let关键字来定义变量。它的用法类似于var,但是所声明的变量,只在let关键字所在的代码块内有效,且不允许重复声明
ECMAScript 6 新增了 const关键字,用来声明一个只读的常量。一旦声明,常量的值就不能改变。
数据类型
var test=20;
JavaScript中分为:原始类型 和 引用类型
5种原始类型:
- number :数字(整数,小数,NaN(Not a Number))
- string:字符,字符串,单双引皆可
- boolean:布尔。true,false
- null:对象为空
- undefined:当声明的变量未初始化时,该变量的默认值是undefined
使用typeof运算符可以获取数据类型
alter(typeof age);
运算符
- 一元运算符:++,--
- 算术运算符:+,-,*,/,%
- 赋值运算符:=,+=,-=...
- 关系运算符:>,<,>=,<=,!=,==,===
- 逻辑运算符:&&,||,!
- 三元运算符:条件表达式?true_value:false_value
==:
1.判断类型是否一样,如果不一样,则进行类型转换
2.再去比较其值
===:
1.判断类型是否一致,如果不一样,直接返回false
2.再去比较其值
类型转换:
*其他类型转换为number:
1. string:按照字符串的字面值,转为数字,如果字面值不是数字,则转为NaN。一般使用parseInt
2. boolean:true 转为 1,false 转为 0
*其他类型转为boolean:
1. number:0和NaN转为false,其他的数字转为true
2. string:空字符串转为false,其他字符串转为true
3.null:转为false
4.undefined:转为false
流程控制语句
- if:
- switch:
- for:
- while:
- do...while :
函数
函数(方法)是被设计为执行特定任务的代码块
定义:JavaScript函数通过 function 关键词进行定义,语法为:
function functionName(参数1,参数2..){
要执行的代码
}
注意:
- 形式参数不需要类型。因为JavaScript是弱类型语言
- 返回值也不需要定义类型,可以在函数内部直接使用return返回即可
function add(a,b){
return a+b;
}
调用:函数名称(实际参数列表);
let result=add(1,2);
定义方式二:
var functionName=function(参数列表){
要执行的代码
}
var add=function(a,b){
return a+b;
}
调用:JS中,函数调用可以传递任意个数参数
let result=add(1,2,3);
Array
JavaScript Array 对象用于定义数组
定义:
访问:
注意:JS数组类似于Java集合,长度,类型都可变。
String
定义:
属性:
方法:
自定义对象
格式:
示例:
var person={
name="张三",
age=18,
eat function(){
alert("吃饭");
}
};
BOM
Browser Object Model 浏览器对象模型
JavaScript将浏览器各个组成部分封装成为对象
组成:
- Window:浏览器窗口对象
- Navigator:浏览器对象
- Screen:屏幕对象
- History:历史记录对象
- Location:地址栏对象
Window
Window:浏览器窗口对象
获取:直接使用window,其中window.可以省略
window.alert("abc");
属性:获取其他BOM对象
方法:
History
History:历史记录
获取:使用window.history获取,其中window.可以省略
方法:
Location
Location:地址栏对象
获取:使用window.location获取,其中window.可以省略
window.location.方法();
location.方法();
属性:
href | 设置或返回完整的URL |
正则表达式
概念:正则表达式定义了字符串组成的规则
定义:
1.直接量:注意不要加引号
var reg=/^\w{6,12}$/;
2.创建RegExp对象
var reg=new RegExp("^\\w{6,12}$");
方法:
test(str):判断指定字符串是否符合规则,返回true 或是false
^:表示开始
$:表示结束
[ ]:代表某个范围内的单个字符,比如: [0-9] 单个数字字符
.:代表任意单个字符,除了换行和行结束符
\w:代表单词字符:字母、数字、下划线(),相当于 [A-Za-z0-9]
\d:代表数字字符: 相当于 [0-9] 量词:
+:至少一个
*:零个或多个
?:零个或一个
{x}:x个
{m,}:至少m个
{m,n}:至少m个,最多n个