Javascript专项练习_02——原型重构_隐式转换_this指向_类型转换_模式匹配_数组移动_回文判断
Posted 勇敢*牛牛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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) a的值为
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();
以上是关于Javascript专项练习_02——原型重构_隐式转换_this指向_类型转换_模式匹配_数组移动_回文判断的主要内容,如果未能解决你的问题,请参考以下文章