JavaScript练习1

JavaScript练习1

“+new Array(017)” 这段代码输出为?// NaN

首先,前面+是一元运算符,相当于我们说的正负,无运算效果,但是可以将字符串等转为number类型。此题中017其实是八进制,故而是是Array(15)。这里相当于对于一个未赋值但是长度为15的数组进行number类型转化,其结果为NaN。

+运算符作为二元运算符时,有两个功能:数字相加、连接字符串,数字相加没啥好说的,连接字符串时,会先把两个参数都转换成字符串再进行连接。
+作为一元运算符时,会将参数转换为数字返回结果,所以console.log(+new Array(017));输出的是NaN
类似的还有-运算符,输出一个转换后的负数
console.log(+new Array()); //0
console.log(+new Array(0)); //0
console.log(+new Array(1)); //0
console.log(+new Array(2)); //2以上都是NaN //NaN
console.log(+[]); //0
console.log(+[1]); //1
console.log(+[1, 2]); //NaN
console.log(+[undefined]); //0
console.log(+[undefined, undefined]); //NaN

以下哪个语句打印出来的结果时false?

A. alert(3==true)

B. alert(2==“2”)

C. alert(null==undefined)

D. alert(isNan(“true”))

A、
1 == true   // 布尔值会转成number true即为1 所以结果是true
2 == true   // 布尔值会转成number true即为1 所以结果是false
3 == true   // 布尔值会转成number true即为1 所以结果是false
1 == false  // 布尔值会转成number false即为0 所以结果是false
0 == false  // 布尔值会转成number false即为0 所以结果是true
B、数字字符串2会转换成数字2在和数字2进行比较 。 == js会优先选择将字符串转成数字==
C、Javascript规范中提到, 要比较相等性之前,不能将null和undefined转换成其他任何值,并且规定null和undefined是相等的。null和undefined都代表着无效的值。
D、
isNaN() 函数用于检查其参数是否是非数字值。如果参数值为 NaN 或字符串、对象、undefined等非数字值则返回 true, 否则返回 false。

在这里插入图片描述

下列正则表达式中,能匹配到的字符串个数最多的是()

A.^abc$

B.^[abc]$

C.^[abc][1,2]$

D.^[abc]{2}$
^abc$  匹配开头是a,结尾是c,开头和结尾中间有一个b,所以只能匹配abc一个
^[abc]$  匹配中括号[]里面的一个字母,而且以这个字母开始,以这个字母结尾,所以只能匹配上a,b或者c,共三个
^[abc][1,2]$匹配以abc的一个字母开始,以1或2结尾的,组合一下可知有a1,a2,b1,b2,c1,c2;共六个
^[abc]{2}$匹配abc随便组成的两个字母,有aa,ab,ac,ba,bb,bc,ca,cb,cc;共九个

Date.now()返回一个时间戳,是number类型

Readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容。但是它们之间有着微小的差别。Readonly只针对input(text / password)和textarea有效,而disabled对于所有的表单元素都有效,包括select, radio, checkbox, button等。

  1. 5种原始类型:Undefined、Null、Boolean、Number、String

  2. 基本数据类型:Number,String,Boolean,Undefined,Null

  3. 复杂数据类型:Object,Array,Function,RegExp,Date,Error

  4. 全局数据类型:Math

  5. Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;

  6. Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;

  7. Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则)。

在特定作用域中调用函数。当一个对象没有某个方法,而其他对象有,我们就可以使用call或apply实现某个方法的复用。call和apply使用方法基本相同,唯一不同之处就是它们的参数规则:call方法接受一个参数列表,而apply方法接受一个包含多个参数的数组。

hasOwnProperty: 是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。

isPrototypeOf : 是用来判断要检查其原型链的对象是否存在于指定对象实例中,是则返回true,否则返回false。

apply,call,bind的用法和区别(方法劫持)
用途:手动改变this的指向
区别:1.apply和call会使当前函数立即执行,bind会返回一个函数,后续需要时再调用
	 2. call是apply的语法糖,只有传的参数不同,call中要传多个任意参数,apply只可以直接传数组或者类数组
	 3. bind是为函数绑定一个this上下文
规则: fn.apply(上下文环境,执行所需数组)
	 fn.call(上下文环境,执行所需单个参数)
	 fn.bind(上下文环境)
ps:如果上下文的值为null,则使用全局对象代替,相当于没传上下文还用以前的
apply可以将一个数组转换为一个参数列表([p1,p2,p3]转换为p1,p2,p3)
   var arr=[1,2,3,4]
   console.log (Math.max.apply(null,arr))//4
Math.max()只能传数字,可以使用apply将数组转为一个一个参数传入

[1,2,3,4]
console.log (Math.max.apply(null,arr))//4
Math.max()只能传数字,可以使用apply将数组转为一个一个参数传入


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值