前段三剑客之JavaScript-02
目录
简介
核心
函数
字符串对象
事件
运算符和控制语句
DOM
正则表达式
BOM
JSON
简介
JavaScript由JavaScript语法,DOM和BOM组成
JS中提供了一些输入输出语句:
alert(); //浏览器弹出警示框
console.log(); //控制台打印
prompt(); //浏览器弹出输入框
var 变量名 = 值; //可以赋任何值,弱类型语言
只声明,不赋值:默认赋值 undefined
不声明,不赋值:报错
不声明,只赋值:可以用
typeof运算的语法格式:
typeof 变量名
typeof运算符的运算结果是以下六个字符串之一:
undefined string boolean object number function
全局变量:浏览器打开时声明,浏览器关闭时销毁
注意:
省略var声明的变量,无论是在函数体内还是函数体外定义的都是全局变量
声明局部变量,一定要用var语句
转换为字符串
num.toString();
String(num);
num + "字符串"
转换为数字
parseInt(str);
parseFloat(str);
Number(str);
null NaN undefined 这三个值有什么区别?
null:object
NaN:number
undefined:undefined
但是null和undefined可以等同
核心
函数的定义方式:
function 函数名(形参){
函数体;
}
函数名 = function(形参){
函数体;
}
JS中的函数不需要指定返回值类型,返回什么类型都行
可以作为属性值调用,οnclick="函数"
JS定义类的语法:
function 类名(形参){
this.属性 = 属性值,
this.方法 = function(){}
}
var 类名 = function(形参){}
var 类名 = {}
可以通过prototype这个属性来给类动态扩展属性以及函数
类名.prototype.方法 = function(){}
创建数组的两种方式:
var 数组名 = new Array();
var 数组名 = [];
函数
obj.getFullYear();
obj.getMonth();
obj.getDate();
obj.getDay();
obj.getHours();
obj.getMinutes();
obj.getSeconds();
字符串对象
concat(str1,str2,str3)
substr(start,length)
slice(start,end)
substring(start,end)
toUpperCase()
toLowerCase()
事件
任何一个事件都会对应一个事件句柄,事件句柄是在事件前添加on。
onXXX这个事件句柄出现在一个标签的属性位置上。
注册事件的两种方式:
1、直接在标签中使用事件句柄
2、先获取这个按钮对象,给按钮对象的onclick属性赋值
运算符和控制语句
void运算符:
语法:void(表达式)
运算原理:执行表达式,但不返回任何结果
javascript:void(0)
即保留超链接的样式,同时用户点击该超链接的时候执行一段JS代码,但页面还不能跳转
<a href="javascript:void(0)"> </a>
数组定义语法:
var 数组名 = [];
for..in
for(var i in array){
alert(i);
}
with
with(对象名){
alert(属性);
}
DOM
根据id名获取:document.getElementById("id名");
根据标签名获取:document.getElementsByTagName("标签名");
根据类名获取:document.getElementsByClassName("类名");
根据选择器获取:document.querySelector("选择器");
根据选择器获取:document.querySelectorAll("选择器");
获取body元素:document.body
获取html元素:document.documentElement;
innerText和innerHTML属性有什么区别?
相同点:都是设置元素内部的内容
不同点:innerText不识别html标签;innerHTML识别html标签
关于dom操作,主要针对于元素的操作。主要有创建、增、删、改、查、属性操作、事件操作。
创建:
1、document.write
2、innerHTML
3、createElement
增加:
1、appendChild
2、insertBefore
删除:
1、removeChild
修改:
1、修改元素属性:src、href、title
2、修改普通元素内容:innerHTML、innerText
3、修改表单元素:value、type、disabled
4、修改元素样式:style、className
查询:
1、DOM提供的API方法:getElementById、getElementsByTagName
2、querySelector、querySelectorAll
3、利用节点操作获取元素:parentNode、children、previousElementSibling、nextElementSibling
属性操作:
1、setAttribute
2、getAttribute
3、removeAttribute
正则表达式
什么是正则表达式,有什么用?
Regular Expression
正则表达式主要用在字符串格式匹配方面
BOM
BOM编程中,window对象是顶级对象,代表浏览器窗口
window.open()
window.close()
window.alert()
window.confirm()
window.history.back()
window.history.go(-1)
window.history.go(1)
以上相当于网页左上角的前进和后退箭头
window.localtion.href //当前页面的地址
document.location //也是地址
总结:有哪些方法可以通过浏览器往服务器发请求?
1、表单form的提交
2、超链接
3、document.location
4、window.location
5、window.open("url")
6、直接在浏览器地址栏上输入url
以上所有的请求方式都可以携带数据给服务器,只有通过表单提交的数据才是动态的。
JSON
什么是JSON,有什么用?
JavaScript Object Notation
主要的作用是:一种标准的数据交换格式,目前非常流行
JSON是一种标准的轻量级的数据交换格式。特点是:体积小,易解析
在实际的开发中有两种数据交换格式,使用最多,其一是JSON,另一个是XML。
XML体积较大,解析麻烦,语法严谨
通常银行相关的系统站之间进行数据交换的话使用XML
HTML的XML有一个父亲:SGML
HTML主要做页面展示:语法松散
XML主要做数据存储和数据描述的:语法相当严格
//创建JSON对象
var student = {no : '01',name : '张三',age : 20,sex : '男'
}
//遍历JSON对象
for(var s in student){alert(student[s]);
}//一个复杂的json对象
var jsonData = {name : '张三', age : 20,address : {city : '北京',street : '朝阳区'},interest : ['smoke', 'drink']
}
Java连接数据库,查询数据之后,将数据在java程序中拼接成JSON格式的字符串,将json格式的字符串响应到浏览器也就是说java响应到浏览器上的仅仅是一个JSON格式的字符串,还不是一个json对象,可以使用eval函数,将json格式的字符串拼接成json对象。
eval函数的作用是:将字符当作一段JS代码解析并执行
var str = "{name : 'jack', age : 22}";window.eval("var json2 = " + str);
alert(json2.name);
在JS当中: []和{}有什么区别?
[]是数组
{}是JSON