JavaScript学习笔记(五)

JavaScript学习笔记——内置对象和BOM



基本知识


  • JavaScript中的所有事物都是对象:字符串、数值、数组、函数、日期···
  • JavaScript提供多个内建对象;
  • 对象只是一种特殊的数据,对象拥有属性和方法;
  • JavaScript允许自定义对象;
  • 访问对象的属性:objectName.propertyName
  • 访问对象的方法:objectName.methodName()

创建方法


  • 创建直接的实例
<script>
	var example = new Object();
	//var example = {}; 与 new Object()等价

	example.pro1 = "XXX";
	example.pro2 = 4;
	//var example = {pro1:"XXX", pro2: 4}; 与上述操作等价

	alert(example.pro1);
	//alert(example["pro1"]);  也可用该方式进行调用
</script>
  • 使用对象构造器:使用函数来构造对象
<script>
	function example(one,two,three){
		this.one1 = one;//this表示当前对象,点表示给当前对象的属性进行操作
		this.two1 = two;
		this._three = three;//this后面的名称为便于区分可另行定义
	} //通过构造函数的方式构造对象

	var test = new example("XXX",3,5); //实例化新的对象
	var test2 = new example("XAXX",31,5); //可重复使用
	alert(test.one1 + test.two1 + test._three); //调用
</script>
<script>
	function example(one,two){
		this.one1 = one;
		this.two1 = two;
		this._three = three;
		function three(){
			alert("XXX");
		}
	} 

	var test = new example("XXX",3,5); //实例化新的对象
	test._three();
</script>
  • 使用for/in循环遍历对象里的属性
<script>
	function example(one,two){
		this.one1 = one;
		this.two1 = two;
		this._three = three;
		function three(){
			alert("XXX");
		}
	} 

	var test = new example("XXX",3,5); //实例化新的对象
	test._three();

	for(var temp in test){
		document.write(test[temp]);
	}
</script>

String字符串对象


  • 用于处理文本
  • 创建方法:new String() 或者直接用引号进行创建
  • length属性获取长度
  • 大小写转换:toUpperCase(),toLowerCase()
var str = new String("Hello!");
var str1 = "Hello!";
var str2 = 'Hello!';

alert(str.length);

alert(str.toUpperCase());
alert(str.toLowerCase());
  • 替换文本:replease()
var msg = "你好,XXX";
var temp = msg.replace("XXX","AAA"); //XXX是要被替换的内容,AAA是代替的内容
document.write(temp);
  • 字符串分割:split()
var word= "a,b,c,d,e,f";
var arr = word.split(",")//用逗号进行分隔
for(var i in arr){
	document.write(arr[i]+ "<br>");
}

var msg = "How are you";
var arr = msg.split(" ");
for(var i in arr){
	document.write(arr[i]+"<br>");
}
  • 连接两个或更多字符:concat()
var str1 = "AAA";
var str2 = "Hello!";
var str4 = "How are you?";

var str3 = str1.concat(str2,str4); //concat()中可以添加1到N个字符串
document.write(str3);
  • 查找字符串:indexOf()、lastIndexOf()
//indexOf()是从左至右的去找寻并获取
var str = "Hello, how are you today? Oh, hello, I'm fine.";
//索引下标从0开始,符号空格都算
document.write(str.indexOf("Hello")); //0--获取的是匹配字符的第一个字母的索引下标

//lastIndexOf()是从右至左的去查找
document.write(str.lastIndexOf("Hello")); //16--从右边开始匹配第一个字母的位置
  • 截取字符串:substring()、substr()
//substring(fromIndex,toIndex)
var str1 = "Hello, how are you today? Oh, hello, I'm fine.";

var str2 = str1.substring(5,10); //截取索引为5-9的,不包括10
document.write(str2);

//substr(fromIndex,length)
var str3 = str1.substr(5,5);
socument.write(str3);

var idx = str1.indexOf("Hello");
var end = str1.indexOf(",");
var temp = str1.substring(idx); //从选定的地方开始到最后
var temp2 = str1.substring(idx,end); //截取了Hello
document.write(temp);
documen.write(temp2);
  • 去掉空白:trim()
var msg = "   AAA BBB CCC ";
document.write(msg.trim()); //去掉两边的空格

Date日期对象


  • 基本语法
new Date(); //当前日期和时间
new Date(milliseconds); //返回从1970年1月1日至今的毫秒数
new Date(dateString); //指定字符串,会转换成日期形式
new Date(year,month,day,hours,minutes,seconds,milliseconds); //可以指定年月日时分秒,不是都要指定,可指定部分

例:

var date1 = new Date("2020-11-12"); //用字符串的形式指定时间
document.write(date1);

var date2 = new Date(2018,12,01);
document.write(date2); //会显示2019年,因为在Date中的月份为 0-11

var date3  = new Date(2018,11,01);
document.write(date3); //这样才会得到12月的显示
  • 常用方法
方法描述
getDate()从Date对象返回一个月中的某一天(1~31)
getDay()从Date对象返回一周中的某一天(0~6)
getFullYear()从Date对象以四位数字返回年份
getHours()返回Date对象的小时(0~23)
getMilliseconds()返回Date对象的毫秒(0~999)
getMinutes()返回Date对象的分钟(0~59)
getMonth()从Date对象返回月份(0~11)
getSeconds()返回Date对象的秒数(0~59)
getTime()返回1970年1月1日至今的毫秒数
toLocaleDateString()获取本地日期(根据本人所处环境打印)
toLocaleTimeString()获取本地时间
toLocaleString()获取本地时间和日期

与getXXX()方法相对应的有setXXX()方法。

var date1 = new Date();
date1.setFullYear(2040); //改变当前年份
date1.setMonth(2); //改变当前月份为3月
date1.setDate(5); //改变当前日期为5号
date1.setHours(10); //改变当前时间-小时数
document.write(date1)

var today = new Date();
document.write(today.getFullYear());
document.write(today.getMonth()+1); //加1后才能得到我们真实的所观察到的值,因为月份是从0开始的

Array数组对象


  • 基本语法
//1、常规方式
var one = new Array();
one[0] = "AAA";
one[1] = "BBB";
one[2] = "CCC";

//2、简洁方式
var two  = new Array("AAA","BBB","CCC");

//3、直接赋值
var three = ["AAA","BBB","CCC"];
  • 常用属性和方法
名称功能
length(属性)获取长度
toString()用```document.write(array)来打印数组中的元素时,是默认调用该方法的
indexOf()搜索数组中的元素,并返回它所在的位置
concat()数组合并
join()把数组的所有元素放入一个字符串
map()通过指定函数处理数组的每个元素,并返回处理后的数组
forEach()遍历,不需要返回值
reverse()反转
sort()排序
//indexOf()
var array = ["AAA","BBB","CCC"];
var idx = array.indexOf("AAA");

//concat()
var arr1 = ["AAA","BBB"];
var arr2 = ["DDD","EEE","KKK"];
var arr3 = ["CCC","FFF"];
var temp = arr1.concat(arr2, arr3);

//join(separator)
var tpArr = arr2.join(" and "); //指定and为分隔符

//map()
var tmpMapArr = arr2.map(function(item,index,array){
	return item+"1";
});
//item--当前的值,index--当前值的索引,array--当前的数组,后两个参数不是必须的

//forEach()
arr2.forEach((item,index,array){
	document.write(item+"<br>");
});

//reverse()
arr2.reverse();
document.write(arr2.reverse());

//sort()
document.write(arr2.sort()); //按照字母顺序进行升序排列,对于数字,会将其转换为字符串后进行排序,即会出现1,19,3,5的情况

var arr4 = [2,4,19,1]
document.write(arr4.sort(function(a,b){
	return b-a;   
}));  //通过一个比较器,可以对他们的大小进行比较后再进行排序

Math算术对象


执行常见的算术任务。

  • 常用的Math对象属性
属性描述
E返回算术常量e,即自然对数的底数
LN2返回2的自然对数
LN10返回10的自然对数
LOG2E返回以2为底的e的对数
LOG10E返回以10为底的e的对数
PI返回圆周率
SQQRT1_2返回2的平方根的倒数
SQRT2返回2的平方根
  • 常用的Math对象方法
方法描述
Math.max(x,y,…,z)返回最大值
Math.min(x,y,…,z)返回最小值
Math.abs(x)返回绝对值
Math.round(x)把数四舍五入为最为接近的整数
Math.ceil(x)对数进行上舍入 – 4.2 会舍到 5
Math.floor(x)对数进行下舍入
Math.random(x)返回0~1之间的随机数,不包括1,包括0
//Math.random()
document.write(Math.random()*10);  //这样为0~10之间的随机数,不包括10
document.write(Math.random()*10+1);  //这样为1~11之间的随机数,不包括11
document.write(Math.floor(Math.random()*10+1));  //这样可取得整数

RegExp正则表达式对象


描述字符模式的对象;
用于对字符串模式匹配及检索替换,是对字符串执行模式匹配的强大工具。

  • 基本语法
var patt = new RegExp(pattern,modifiers);
var parr = /pattern/modifiers;

var patt = new RegExp("\\w+","i");
var patt = /\w+/i;
  • 修饰符

用于执行不区分大小写和全文的搜索.
i|用来执行不区分大小写的匹配
g|用于执行全文的搜索(不是在找到第一个就停止查找,而是找到所有的匹配)

  • 对象方法
方法描述
test()搜索字符串指定的值,根据结果并返回真或假
exec()检索字符串中的指定值,返回值是被找到的值;如果没有发现匹配,则返回null
var reg1 = new RegExp("hello");
//var reg1 = new RegExp("hello","gi");
var reg2 = /hello/;
var reg3 = /hello/i; //加上修饰符i,不区分大小写的匹配
var reg4 = /hello/gi; //加上修饰符g,进行全局匹配
var str = "hi, hello AAA, Hello world!";
document.write(reg1.test(str));
document.write(reg2.test(str));

document.write(reg1.exec(str));
  • 实际应用

验证用户名和密码
("^[a-zA-Z]\w{5,15}$")
由A=Z,a-z,0-9组成,且第一个字必须为字母,长度在5-15位

验证电话号码
("^(\\d{3,4}-)\\d{7,8}$")
格式为:xxx/xxxx-xxxxxxx/xxxxxxxx

验证Email地址
("^\w+([-+.]\w)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$");

\w --> [a-zA-Z0-9_]
\d --> [0-9]
\w+ --> [a-zA-Z0-9_]I一到多个

BOM


浏览器对象模型-Browser Object Model。

Window对象

  • 所有浏览器都支持,它表示浏览器窗口

  • 所有JavaScript全局对象、函数以及变量均自动成为window对象的成员

  • 全局变量是window对象的属性

  • 全局函数是window对象的方法

  • 常见属性和方法

方法/属性描述
window.innerHeight浏览器窗口的内部高度(不包括滚动条、工具栏的高度)
window.innerWidth浏览器窗口的内部宽度
window.outerHeight浏览器窗口的总高度
window.outerWidth浏览器窗口的总宽度
window.open()打开窗口
window.close()关闭窗口
window.open("http://www.baidu.com","MyWindow","width=300,height=200,left=50,,top=200")  
//指定打开窗口的宽度高度和位移
Screen对象

  • 包含有关用户客户端显示屏幕的信息
  • window.screen对象在编写时可以不使用window这个前缀
  • screen对象的属性
属性描述
screen.availWidth可用的屏幕宽度(不包括任务栏等)
screen.availHeight可用的屏幕高度(不包括任务栏等)
screen.width屏幕总宽度
screen.height屏幕总高度
Location对象

  • 包含有关当前浏览器URL的信息
  • window.location中的window可省略
  • location对象的属性和方法
方法/属性描述
location.href返回完整的URL
location.host返回一个URL的主机名和端口(默认为8080时会省略显示)
location.hostname返回URL的主机名
location.port返回web主机的端口
location.protocol返回所使用的web协议(http:*//或https://)
location.assign()载入一个新的文档
location.reload()重新载入当前文档
location.replace()用新的文档替换当前文档
History对象

  • 包含浏览器的历史
  • history对象的属性和方法
属性/方法描述
length返回历史列表中的网址数
back()回退到historyr列表中的前一个URL
forward()加载history列表中的下一个URL
go()跳转到history列表中的某个具体页面
window.history.go(1); //可通过在括号中添加数字来指定跳转到哪一页
window.history.go(-1); // 1和-1能达到同样的效果
Navigator对象

  • 包含有关浏览器的信息
  • navigator对象的属性
属性描述
appCodeName浏览器的代码名
appName浏览器的名称
appVersion浏览器的平台和版本信息
cookieEnabled浏览器是否启用cookie,返回一个布尔值
platform运行浏览器的操作系统平台
userAgent返回由客户机发送服务器的user-agent头部的信息/值

注意
来子navigator对象的信息具有误导性,不应该被用于检测浏览器版本,因为该数据可被浏览器使用者更改;一些浏览器对测试站点会识别错误;浏览器无法报告晚于浏览器发布的新操作系统。

弹窗/消息框

  • 警告框alert()
  • 确认框confirm()
  • 提示框prompt()
//alert()
window.alert("hello!");

//confirm()
var flag = confirm("XXX"); //会弹出确认和取消的选项

//prompt()
var name = prompt("XXX","AA"); //会弹出带有输入框的弹窗,XXX为要求,AA为默认值
计时事件

  • 通过在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。
方法描述
setTimeout()暂停指定的毫秒数后执行指定的代码
clearTimeout()停止setTimeout()执行
setIntterval()间隔指定的毫秒数不停地执行指定的代码
clearInterval()停止setInterval()执行
setTimeout(function(){
	alert("hello");  //3秒后弹出一个对话框
},3000);   //3000毫秒=1秒
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值