例题—js(7)

三十二、js数据类型

1.7种数据类型在这里插入图片描述
2.类型检测
typeof

  • 比较特殊的是typeof null返回“object”。
  • 历史原因,规范尝试修改typeof null返回“null”修改完大量网站无法访
    问,为了兼容,或者说历史原因返回"object"。
  • typeof对基本类型和函数对象很方便,但是其他类型就没办法了。

instanceof
在这里插入图片描述
原理:判断左边的左操作数的对象的原型链上是否有右边这个构造函数的prototype属性。
任何一个构造函数都有一个prototype对象属性,这个对象属性将用作new出来的对象的原型。

  • 基于原型链操作。obj instanceof Object。
  • 左操作数为对象,不是就返回false,右操作数必须是函数对象或者函数构造器,不是就返回typeError异常。
  • instanceof在判断对象是不是数组,Data,正则等时很好用。
  • instanceof坑:不同window或iframe之间的对象类型检测不能使用instanceof!

Object.prototype.toString

constructor
任何对象都有constructor属性,继承自原型的,constructor会指向构造这个对象的构造器或者构造函数。

constructor可以被改写,所以使用要小心。

duck type
比如不知道一个对象是不是数组,可以判断它的length是不是数字,它是不是有join,push这样一些数组的方法。通过一些特征判断对象是否属于某些类型,这个有时候也常用。


三十三、模块化开发

01.什么是模块化
所谓的模块化开发就是封装细节,提供使用接口,彼此之间互不影响,每个模块都是实现某一特定的功能。模块化开发的基础就是函数
02.实现模块化----使用函数封装
03.实现模块化----使用对象封装
04.实现模块化----立即执行函数写法
05.实现模块化----放大模式
06.实现模块化----宽放大模式(Loose augmentation)
07.实现模块化----输入全局变量


三十四、手机号的正则表达式(以1开头的11位数字)

let phone=13712345678;
let reg=/^1[3|4|5|7|8][0-9]{9}$/;
console.log(phone,reg.test(phone)?'正确的手机号':"不正确的手机号")

在这里插入图片描述

  • ^1 以1开头
  • [3|4|5|7|8] 第二位是3或4或5或7或8任意一位
  • [0-9]{9}$ 以0-9任意9位数字结尾

三十五、实现元素宽度跟随浏览器窗口变化

<body>
	<div id="left"></div>
	<div id="center"></div>
	<div id="right"></div>
	
	<script src="jquery-3.4.1.js"></script>
	<script type="text/javascript">		
		//浏览器窗口改变时触发
		$(window).resize(()=>{
			//将元素的宽度设为窗口的宽度/3
			$("#center").width(`${Math.floor($(window).width()/3)}`)
			console.log($("#center").width())
		})
	</script>
</body>

三十六、原生js实现获取li的索引

<body>
	<ul>
		<li>11</li>
		<li>22</li>
		<li>33</li>
		<li>44</li>
		<li>55</li>
	</ul>
	<script type="text/javascript">		
		//获取所有的li
		let lis=document.getElementsByTagName('li');
		for(let i=0;i<lis.length;i++){
			//每个li绑定点击事件
			//利用let的块级作用域,每个li都绑定了对应的i
			lis[i].onclick=()=>console.log(`${lis[i].innerHTML}被点击了,索引值是${i}`)
		}
	</script>
</body>

在这里插入图片描述
在这里插入图片描述


三十七、将json字符串转为对象

let jstr='{"name":"张三","age":"18"}'
console.log(jstr)
console.log(typeof jstr)
let jobj=JSON.parse(jstr)
console.log(jobj instanceof Object)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值