数组相关
arr.concat():合并数组
arr.join():分隔符(连接符)
arr.pop():删除数组末尾的值,返回数组删除的值,如果对空数组进行操作,返回undefined。
arr.push():给数组末尾添加值,返回数组添加后的长度,如果对空数组进行操作,返回undefined。
arr.shift():删除数组第一个元素的值,返回删除的值,如果对空数组进行操作,返回undefined。
arr.unshift():给数组的开始位置添加值,返回添加后数组的长度
arr.splice(startIndex,deletCount,values):替换数组中的元素,返回一个数组,存放的删除元素。(万能方法)
startIndex开始处理数据的位置,deletCount删除的数量(包含开始位置),values要添加的值。
arr.slice(startIndex,endIndex):截取指定位置的数组元素。startIndex开始位置(为负数,那么倒数第一位为-1,从右向左数,负几就是倒数第几未开始),endIndex结束位置
arr.sort():按Unicode编码排序
arr.reverse():反向排序
字符串相关
arr.indexof():搜索一个指定的元素,未找到返回-1(返回的是该数组元素的位置,可找相邻的多个字符的位置,返回第一个字符的位置,起始位置为负数,从0位开始查找)
substr(startindex,[length]):start开始位置,取length个字符(没有length就截取所有,起始位置为负数倒着数,截取到endindex的位置的字符(正着截取))
substring(startindex,endindex)起始位置为负数,从0位开始查找,截取字符串包含起始字符不包含末尾字符
spilit(分割条件)条件需要字符内自带的符号分割
lastindexof()倒序查找
charat(index)指定索引字符
tolowercase()转大写
touppercase()转小写
str.slice()起始位置为负数倒着数,截取到endindex的位置的字符(正着截取)
replace()替换字符
闭包相关
有权访问另一函数作用域内变量的函数
正则表达式
在正则表达式中,如果直接给出字符,就是精确匹配。用\d可以匹配一个数字,\w可以匹配一个字母或数字,所以:
'00\d'可以匹配'007',但无法匹配'00A';
'\d\d\d'可以匹配'010';
'\w\w'可以匹配'js';
.可以匹配任意字符,所以:
'js.'可以匹配'jsp'、'jss'、'js!'等等。
要匹配变长的字符,在正则表达式中,用*表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符
要做更精确地匹配,可以用[]表示范围,比如:
[0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;
[0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串,比如'a100','0_Z','js2015'等等;
[a-zA-Z\_\$][0-9a-zA-Z\_\$]*可以匹配由字母或下划线、$开头,后接任意个由一个数字、字母或者下划线、$组成的字符串,也就是JavaScript允许的变量名;
[a-zA-Z\_\$][0-9a-zA-Z\_\$]{0, 19}更精确地限制了变量的长度是1-20个字符(前面1个字符+后面最多19个字符)。
A|B可以匹配A或B,所以(J|j)ava(S|s)cript可以匹配'JavaScript'、'Javascript'、'javaScript'或者'javascript'。
^表示行的开头,^\d表示必须以数字开头。
$表示行的结束,\d$表示必须以数字结束。
js也可以匹配'jsp',但是加上^js$就变成了整行匹配,就只能匹配'js'了。
JSON
是JavaScript Object Notation的缩写,它是一种数据交换格式。
用浏览器访问OpenWeatherMap的天气API,查看返回的JSON数据,然后返回城市、天气预报等信息:
浏览器对象
①window:不但充当全局作用域,而且表示浏览器窗口。
innerWidth和innerHeight属性,可以获取浏览器窗口的内部宽度和高度。内部宽高是指除去菜单栏、工具栏、边框等占位元素后,用于显示网页的净宽高。
②navigator:表示浏览器的信息
navigator.appName:浏览器名称;
navigator.appVersion:浏览器版本;
navigator.language:浏览器设置的语言;
navigator.platform:操作系统类型;
navigator.userAgent:浏览器设定的User-Agent字符串。
③screen:表示屏幕的信息
screen.width:屏幕宽度,以像素为单位;
screen.height:屏幕高度,以像素为单位;
screen.colorDepth:返回颜色位数,如8、16、24。
④location:表示当前页面的URL信息
location.protocol; // 'http'
location.host; // 'www.example.com'
location.port; // '8080'
location.pathname; // '/path/index.html'
location.search; // '?a=1&b=2'
location.hash; // 'TOP'
要加载一个新页面,可以调用location.assign()。如果要重新加载当前页面,调用location.reload()方法。
⑤document:表示当前页面
title:是从HTML文档中的<titlexxx</title读取的
getElementById():可以按ID获得一个DOM节点
getElementsByTagName():按Tag名称获得一组DOM节点
cookie:可以获取当前页面的Cookie
⑥history:保存了浏览器的历史记录
back()或forward (),相当于用户点击了浏览器的“后退”或“前进”按钮。
ajax
jQuery在全局对象jQuery(也就是$)绑定了ajax()函数,可以处理AJAX请求。ajax(url, settings)函数需要接收一个URL和一个可选的settings对象,常用的选项如下:
async:是否异步执行AJAX请求,默认为true,千万不要指定为false;
method:发送的Method,缺省为'GET',可指定为'POST'、'PUT'等;
contentType:发送POST请求的格式,默认值为'application/x-www-form-urlencoded; charset=UTF-8',也可以指定为text/plain、application/json;
data:发送的数据,可以是字符串、数组或object。如果是GET请求,data将被转换成query附加到URL上,如果是POST请求,根据contentType把data序列化成合适的格式;
headers:发送的额外的HTTP头,必须是一个object;
dataType:接收的数据格式,可以指定为'html'、'xml'、'json'、'text'等,缺省情况下根据响应的Content-Type猜测。
发送一个GET请求,并返回一个JSON格式的数据: