变量 、作用域、内存 基本包装类型 内置对象 BOM DOM
复习
.
[a-z]
\d
\D
\w
\W
\s
\S
baidu|guge|so
() $1 $2 $3
+
?
*
{m,n}
{n}
{n,}
^ [] //
$
guize.test(内容); true false
exec(内容) 匹配到的内容
内容.match(规则)
replace
search
split
变量 、作用域 、内存
全局 不可以调用局部的
局部可以调用全局
if(){
}
for(){
}
for 和 if 不存在作用域 也就是说
if(true){
var color = 'red';
}
function box(){
var color = 'blue';
}
alert(this.color);
数组 对象 正则表达式 统称为 引用类型 typeof 查看的时候 返回object
需求 查看是否是 数组 正则 对象 instanceof 只能判断引用类型
var test = /test/ig;
console.log(test instanceof RegExp);
var test1 = [1,2,3,4,5];
console.log(test1 instanceof Array);
var test2 = {};
console.log(test2 instanceof Object);
js 具备自动的垃圾回收机制
function box(){
i='test';
}
对于全局的变量 及对象来讲 我们怎么样释放内存
var box ={
name:'zangsan',
}
box = null;
全局变量 对象 用完了以后记得 null 释放
基本包装类型
- 什么是基本包装类型 了解
- js数据类型分为 基本类型和引用类型 原本是引用类型 才可以使用 对象.属性 对象.方法()
- 但是系统也给了 字符串 number boolean 类型一些权限 它们也可以 实线 基本类型变量名.方法()
- 相当于给基本类型 包装了 一下 于是 叫做 基本包装类型
- boolean
- number
- string
number类型的属性和方法
属性 |
方法 |
MAX_VALUE |
|
MIN_VALUE |
|
NAN |
|
alert(Number.MAX_VALUE);
方法 |
说明 |
toString() |
将数字转成字符串 |
toFixed() |
保留几位小数 |
toLocaleString() |
本地数字格式化 1,000 |
toExponential() |
以指数的形式表示数字 1.23456789e+5 |
Precision(3) |
也是以指数的形式体现 但是 可以指定小数点后面的位数 |
alert(test.toString())
alert(test.toLocaleString())
alert(test.toFixed(2))
console.log(test.toExponential())
console.log(test.toPrecision(3))
1.23e+5
string 类型
方法 |
说明 |
charAt(1) |
返回下标为1的字符 |
charCodeAt(1) |
返回下标为1的字符 ascii码 e 101 |
以上方法 用来操作 字符
操作字符串的方法
方法 |
说明 |
concat |
拼接字符串用 |
slice |
同数组slice方法 |
substring |
同上 |
substr(n,m) |
从下标为n的字符开始 截取m个 |
var box = '玛莎玛拉';
//alert(box.concat('买油','脉动','!'));
/*console.log(box.slice(1));
console.log(box.slice(1,3)); //[1,3)
console.log(box.slice(0));*/
/*var box1 = box.slice(1);
//跟数组方法 slice 一样 1表示从下标为一的元素开始截取 直到最后包含第一个元素
console.log(box1); 莎玛拉
console.log(box);玛莎玛拉
console.log(box.substring(2));*/玛拉
console.log(box.substr(0,2)); //玛莎
console.log(box.length);
console.log(box.slice(-3));//box.length+(-3) 相当于slice(1)
console.log(box.slice(3,-1));//slice 3,box.length+(-1)
console.log(box.substr(3,-1)); //如果第二个参数为负数 变成0
字符串位置方法
方法 |
说明 |
indexOf(字符,n) n不写默认从0开始查找 |
返回字符所在的索引位置 |
lastIndexOf(字符,n) n不写 从最后向前查找 |
返回目标字符的最后一个字符出现的索引 |
var box = '我的院子里有两棵树,一颗正树,一颗负两树';
console.log(box.indexOf('两'));
console.log(box.indexOf('鲁'));
console.log(box.indexOf('两',1));
console.log(box.lastIndexOf('两'));
console.log(box.lastIndexOf('两',3));
转大小写
方法 |
说明 |
toUpperCase() |
转大写 |
toLocaleUpperCase() |
转大写并且本地化 |
toLowerCase() |
转小写 |
toLocaleLowerCase() |
转小写并且本地化 |
只有部分语言支持本地化特性 比如土耳其语言
字符串模式匹配方法
方法 |
说明 |
match |
|
replace |
|
search |
|
split |
|
console.log(box.match('good'));
console.log(box.replace('good','cool'));
console.log(box.search('study'));
console.log(box.split(' ') instanceof Array);
额外了解的方法 没多大的意义
document.write(box.link("www.91talk.com"));
document.write("<br />");
document.write(box);
document.write("<br />");
document.write(box.big());
document.write("<br />");
document.write(box.bold());
document.write("<br />");
document.write(box.fontcolor('pink'));
document.write("<br />");
document.write(box.fontsize('100px'));
document.write("<br />");
document.write(box.small());
document.write("<br />");
document.write(box.fixed());
内置对象
global 对象
- encodeURI() 不需要加对象名 直接用方法即可
- eval() 可以解析并运行js代码 功能强大 但是不太安全 容易sql注入
var box = '//test扛把子';
alert(encodeURI(box));
eval('var box="test"');
eval('function test(){return "666";}');
console.log(test());
Math对象
常用属性
console.log(Math.PI);
console.log(Math.E)
console.log(Math.SQRT1_2)
console.log(Math.SQRT2)
常用方法
方法 |
说明 |
min() |
一组数的最小值 |
max() |
一组数的最大值 |
ceil() |
向上取整 10.1 11 |
floor() |
向下取整 10.1 10 |
round() |
四舍五入10.6 11 |
random() |
生成0-1之间的随机数 包含0 不包含1 |
|
|
|
|
|
|
console.log(Math.min(11,22,33,4,55));
console.log(Math.max(11,22,33,4,55));
console.log(Math.ceil(10.1));
console.log(Math.floor(10.1));
console.log(Math.round(10.6));
console.log(Math.round(10.1));
console.log(Math.random())
需求: 生成1-100之间的随机数 5-50之间的随机数
公式:console.log(Math.floor(Math.random()*总数+第一个数));
console.log(Math.floor(Math.random()*100+1));
console.log(Math.floor(Math.random()*46+5));
扩展 精确的指定范围
function selectFrom(mins,maxs){
var sums = maxs-mins+1;
return Math.floor(Math.random()*sum+mins);
}
for (var i=0;i<10;i++) {
document.write(selectFrom(5,10));
document.write('<br />');
}
Math对象 其它方法
方法 |
说明 |
Math.abs(num) |
返回num的绝对值 |
Math.log(num) |
返回num的对数 |
Math.pow(num,x) |
num的x次幂 |
Math.sqrt(num) |
num的平方跟 |
Math.sin(num) |
正弦 |
Math.cos(num) |
余弦 |
Math.tan(num) |
正切 |
BOM
browser object model 浏览器对象模型
- window对象
- history对象
- location对象
window对象
属性 |
说明 |
name |
窗口的名字 |
location |
浏览器窗口的url地址 |
history |
浏览器打开的url |
length |
窗口包含子窗口的个数 |
方法 |
说明 |
alert() |
弹框 重点 |
blur() |
将焦点从窗口移除 |
clearInterval |
清楚间歇调用 |
clearTimeout() |
清除超时调用 |
close() |
关闭窗口 |
confirm(‘确定要离开’) |
创建一个用户确认的对话框 |
focus() |
窗口获得焦点 |
prompt() |
获取用户输入的窗口 |
open() |
|
setInterval() |
|
setTimeout() |
|
open方法
window.open('http://www.qfedu.com');//新建一个窗口并且打开url
//window.open('http://www.qfedu.com','qf');//新建一个窗口 命名并且打开url
//window.open('http://www.qfedu.com','_blank');//blank 新建页面
window.open('http://www.qfedu.com','_parent'); //_prant 表示在父页面
window.open('http://www.qfedu.com','_self'); //_self 表示在当前页面
open方法的参数
参数 |
说明 |
width |
|
height |
|
top |
新窗口的y坐标 |
left |
新窗口的x坐标 |
toolbar |
yes 显示工具栏 no 不显示 |
window.open('http://www.qfedu.com','qianfeng','width=400,height=300,toolbar=yes,top=200,left=300');
获取页面的高度 宽度 页面最大化 页面缩小 这些值是发生变化的
console.log(outerWidth);
console.log(innerWidth);
console.log(outerHeight);
console.log(innerHeight);
location 对象 一定在服务器打开 比如hbuider 不要本地打开
属性 |
方法 |
hostname |
当前主机名 |
port |
端口号 |
protocol |
协议名称 |
href |
获取当前url 地址 |
console.log(location.hostname);
console.log(location.port);
console.log(location.protocol);
console.log(location.href);
location.assign('zoumadeng.html');
history 对象 对历史记录进行操作
属性 |
说明 |
length |
当前窗口打开的url记录数 |
方法 |
说明 |
back() |
后退 |
forward() |
前进 |
go() |
跳转到第一个页面 |
<a href="zoumadeng.html">走马灯</a>
<a href="javascript:qianjin()">前进</a>
<a href="javascript:backto()">后退</a>
<a href="javascript:go(4)">跳转到</a>
function backto(){
history.back();
}
function qianjin(){
history.forward();
}
function go(num){
history.go(num);
}