JS是一门跨平台,面向对象的脚本语言,用于控制网页行为,使其交互
JS和Java是完全不同的语言但基础语法类似
JS的引入方式
1.内部脚本:将JS代码定义在HTML页面中
代码位于<script></script>标签中间
可在html文档中任意地方放置任意数量的<script>
一般放置于<body>元素底部,可改善显示速度
2.外部脚本:JS代码定义在外部JS文件中,引入到需要的HTML页面中
外部JS只包含JS代码,没有<script>标签
<script>标签不能自闭合 就是说不能出现<script src="**.js" />,会失效
JS基础语法
书写语法
区分大小写
每行结尾的分号可有可无
注释单行// 注释多行/* 内容 */
大括号表示代码块 { }
输出语句
window.alert()写警告框
document.write()写入HTML页面输出
console.log()写入浏览器控制台
变量
var来声明变量,变量作用域大,全局变量,允许重复声明,新的覆盖旧的
变量可以存放不同类型的数据 var a=20; a="!";
变量名:字母数字下划线美元组成,数字不能开头,建议驼峰命名
let也可声明变量,let声明变量只在所处代码块内生效,不允许重复声明
const声明只读常量
数据类型
五种原始数据类型
number 数字(整数,小数,NaN——not a number)
string 字符串,单双引号皆可
boolean布尔类型
null 空
undefined 声明的变量未初始化,默认值是这个
typeof 运算符可以获得数据类型
运算符
与Java基本一致
==运算符会进行类型转换 左右两边会先比类型,不一致时化为同一类型进行比较
===运算符不会进行类型转换 类型不一致直接false
类型转换
字符串转数字:字面值转数字,如果字面值不是数字转为NaN
其它类型转boolean
Number:0和NaN为false
String:空字符串为false
Null和undefined:转为false
JS函数
执行某特定任务的代码块
方式一
通过function 函数名(参数){ 执行代码 }定义
形参不用加类型,返回值也不用定义类型,内部直接return
调用:函数名(实参)
方式二
传递的实参个数可以比形参多 但是只会读前几个用
js对象
Array
Array对象定义数组,JS中数组相当于Java的集合,长度可变,数据类型任意
属性:length 元素个数
方法:forEach()遍历每个有值的元素,并调用一次传入的函数
array.forEach(function(e){代码段}) function函数处理每次遍历到的元素,e来接收元素
ES6中做了简化 arr.forEach( (e)=>{代码块} )
push()新元素放入数组末尾,返回数组长度
arr.push(a,b,v,c)
splice()删除某元素
splice(开始删的索引号,删除个数)
String
var 变量名=new String(“......”); 方式一
var 变量名=“.......”; 方式二
属性:length 字符串长度
方法:
charAt(序号数)
主串.indexOf(“str”)返回str串在主串中的起始位置
主串.trim()返回去除了左右端点空格的新串
substring(起始索引,结束索引) 截取字符串,含起始不含结尾
JSON
JS自定义对象
定义格式
var 对象名={
属性名1:属性值1,
属性名2:属性值2,
函数名称:function(形参){执行代码},
函数名称(形参){执行代码} //也可以
}
调用格式
对象名.属性名;
对象名.函数名();
JSON
JS Object Notation称为JS对象标记法,JSON就是通过这个标记法书写的文本
{
“属性名1”:属性值1,
“属性名2”:属性值2
}
key:value形式 key得有双引号
JSON—基础语法
最外层有单引号,数据放在花括号内,key得有双引号
JSON字符串转JS对象
var jsObject=JSON.parse(jsStr);
JS对象转JSON字符串
var jsStr=JSON.stringify(jsObject);
只有转换成对象才能用 变量名.属性名 来访问值
BOM
Browser Object Model 浏览器对象模型,允许JS与浏览器对话,JS将浏览器各组成部分封装成对象
主要五个组成,我们常用window和location两个对象
window
直接用Window时可以省略Window,window.alert()=alert()
属性
history:对History对象的只读引用,具体查看相关文档
location:用于窗口或框架的Location对象(平常就这个见的多一点)
navigator:对Navigator对象的只读引用
方法
confirm()选择确认时会返回true,取消返回false
setInterval(函数,时间) 按时间周期执行函数
setTimeout(函数,时间) 延迟执行一次
Location
会跳转到新指定的地址
DOM
Document Object Model 文档对象模型
将标记语言的各个组成部分封装为对应对象
整个文档就是Document对象
每个标签都是Element对象
标签当中的属性是Attribute对象
标签之间定义的文本是Text对象
有注释的地方都是Comment对象
JS通过DOM,就能够对HTML进行操作
改变HTML内容,修改样式,对DOM事件作反应,添加删除HTML元素
HTML中的Element对象通过Document对象获取,Document对象通过window对象获取
有很多Element,各自的属性方法就查文档不多赘述
JS事件监听
事件:发生在HTML元素上的事情,包括按钮点击,鼠标移动到元素上,键盘按下等
事件监听:JS在事件侦测到时执行代码