0
点赞
收藏
分享

微信扫一扫

【Javascript专项练习_02——原型重构_隐式转换_this指向_类型转换_模式匹配_数组移动_回文判断】


关于JavaScript的说法,下列选项中,错误的是()

JavaScript是一种动态类型,弱类型,基于原型,直译式的脚本语言
JavaScript是一门多线程的语言(x)
浏览器端的JavaScript包含ECMAScript,DOM对象以及BOM对象
JavaScript语言不仅可以在浏览器环境运行,也可以在node.js提供的服务器端平台运行

执行以下程序,输出结果为()

function fn(o,val){
o.b = 1;
val = 1;
}

var obj = {b:0};
var num = 0;
fn(obj,num);
console.log(obj,num);
//{b:1} 0

x 的值是:

function A() {
this.do=function() {return ‘foo’;};
}

A.prototype=function() {
this.do=function() {return ‘bar’};
};

var x=new A().do();//foo

分清楚重写原型的的值和重写原型的方法
原型上的方法一般怎么写 是A.prototype.方法名如A.prototype.show=function(){},然后再通过实例.show()才可以调用,这里直接将原型重写成一个函数就算修正了constructor,也没有用,

var a = parseInt([0,0,1,0,0].join('')+1)

var a = parseInt([0,0,1,0,0].join('')+1)
//join()方法将数组转为字符串,并用指定的分隔符进行分割
[0,0,1,0,0].join("") 后变成字符串'00100'
字符串'00100'+1 ,1是number,会将1转变为字符串后拼接
就变为 001001 parseInt后 变成 1001

在 JS 中类型转换只有三种情况,分别是:

转换为布尔值
转换为数字
转换为字符串
四则运算和==、条件运算都会隐式类型转换。

运算 但记住常见的就差不多了 加法运算 字符串 + 数字 将数字转为字符串 如111+‘222’=“111222” 非加法运算 字符串- x
/ 数字
将字符串转为数字 如’111’-11=100

  • 首先会判断两者类型是否相同。相同的话就是比值大小了
  • 类型不相同的话,那么就会进行类型转换 会先判断是否在对比 null 和 undefined,是的话就会返回 true
  • 判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number
  • 判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断
  • 判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断

程序输出的是

var o = {
age: 18,
a: {
fn: function(){
console.log(this.age);
}
}
}
o.a.fn();//undefined
//fn()方法内的this指代对象a,由于对象a并没有age属性,因此输出结果为undefined

var person={
sex:'女',
fn:function(){
console.log(this.sex);
}
}
person.fn()
//person.fn(); person在调用,this指向person,person对象的属性sex:"女",所以打印出女

以下这段代码的执行结果是什么?

console.log('one');
setTimeout(function(){
console.log('two');
},0);
console.log('three');
//‘one’’three’’two’
//定时器是异步宏任务,当同步代码执行结束,才会执行该任务

如果想要获取整个网页文档中h1标签的个数,可以通过()

如果想要获取整个文档中h1标签的个数,可以使用document.getElementsByTagName('h1')

执行以下 JavaScript 代码,输出结果为()

var a = 4399 < 0 || typeof(4399 + '');
console.log(a);//string

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

^abc$
^[abc]$
^[abc][1,2]$
^[abc]{2}$

^abc$  只能匹配abc这个固定的串,即一个
^[abc]$ 匹配[]里面的某一个字母,所以只能匹配上a,b或者c,即三个
^[abc][1,2]$匹配以abc的一个字母开始,以1或','或2结尾的(这里又不是[12],可以匹配逗号才是),组合一下可知有9个;共9个
^[abc]{2}$匹配abc随便组成的两个字母,有aa,ab,ac,ba,bb,bc,ca,cb,cc;共九个

下面哪些语句可以 在JS里判断一个对象是否为String类型?

var s1 =  'hello';  // 'string'
var s2 = new String('hello'); // 'object'
console.log(typeof s1);
console.log(typeof s2);
console.log(Object.prototype.toString.call(s2));//[object String]
console.log(s2 instanceof Object);//true

JS 中值的类型分为原始值类型和对象类型。原始值类型包括 number, string, boolean, null 和 undefined;
对象类型即 object。首先原始值类型它就不是对象。
另外,要注意 ‘hello’ 和 new String(‘hello’) 的区别,前者是字符串字面值,属于原始类型,而后者是对象。用 typeof 运算符返回的值也是完全不一样的:

typeof 'hello';  // 'string'
typeof new String('hello'); // 'object'

当执行 ‘hello’.length 时,发现可以意料之中的返回 5,感觉 ‘hello’ 就是 String 对象啊,不然它怎么会有 String 对象的属性。其实,这是由于 JS 在执行到这条语句的时候,内部将 ‘hello’ 包装成了一个 String 对象,执行完后,再把这个对象丢弃了,这种语法叫做 “装箱”,在其他面向对象语言里也有(如 C#)。

对于代码 var a = 10.42; 取出 a 的整数部分,以下代码哪些是正确的?

parseInt(a);
Math.floor(a);
Math.ceil(a);
a.split('.')[0];

下列选项中,能获取到input 节点的一项是()

<form class="file" name="upload">
<input id="file" name="file"/>
</form>

执行以下程序,输出结果为()

var x = 10;
var y = 20;
var z = x < y ? x++:++y;
console.log('x='+x+';y='+y+';z='+z);
//x=11;y=20;z=10

这段代码中alert 两次输出结果为

var foo=”Hello”;
(function(){
var bar=”World”;
alert(foo+bar);
})();
alert(foo+bar);

//此函数是一个匿名自执行函数,会先调用并执行一次,即alert (foo+bar)的字符串拼接;

// var bar=”World”是函数内部声明的局部变量,外部无法调用,所以外部的alert(foo+bar)会报错。

Number(null);

代码将返回:

var carname="Volvo";
var carname;
//顺序执行后,carname的值依然为Volvo

执行以下程序,输出结果为()

function a(){
console.log(this);
}
a.call(null);

在一个长度为n的顺序表中删除第i个元素,要移动_______个元素。如果要在第i个元素前插入一个元素,要后移_________个元素。

n-i,n-i+1

执行以下代码,a[1][0]的值为多少。()

int a[][3] = {1,2,3,4,5,6};

以下关于链表和数组说法正确的是()

答案: A C (正确)

A.new出来的数组也在堆中
B.数组插入或删除元素的时间复杂度O(n),链表的时间复杂度O(1)
C.数组利用下标定位,时间复杂度为O(1),链表定位元素时间复杂度O(n)
D.对于add和remove,ArrayList要比LinkedList快

回文判断

function fun() {
let str = '';
str = prompt('输入字符串');
if (str.length <= 2) {
return console.log('输入用例错误');
}
for (let i = 0; i < parseInt(str.length / 2); i++) {
if (str.charAt(i) !== str.charAt(str.length - 1 - i)) {
return console.log('不是回文数');
}
}
return console.log('是回文数');
}
fun();


举报

相关推荐

0 条评论