JavaScript练习笔记

JavaScript练习笔记

1、分析下段代码输入出结果是(B)

var a,b,c; 隐式类型转换

a=”2”;

b=2;

c=a+b;

console.log(c);

A.4 B.22 C.20 D.2

自动类型 String() Number()

1. 字符串相加 转成字符串 再拼接

2. 四则运算 1+b 都是字值 直接计算 3+字符串

3. !运算 自动转换成布尔值 字符串 数值 true


2、分析下段 代码输入出结果是(B)

var x,y;

x=10;

y=x++;

console.log(y);

A.9 B.10 C.11 D.12

先计算再赋值;后 相反


3、分析下段代码输入出结果是(D) //D这里true被转为1

var num;

num=5+true;

console.log(num);

A.true B.false C.5 D.6

类型转换 布尔值转换成true->1


4、分析下段代码输入出结果是(B)

var arr = [2,3,4,5,6];

var sum = 0;

for(var i=1;i<arr.length;i++){

sum+=arr[i]

}

console.log(sum);

A.20 B.18 C.14 D.12


5、数组的扩展中,不属于用于数组遍历的函数的是:(D

A、keys( )

B、entries( )

C、values( )

D、find( )

var arr = [“aaa”,”bbb”,”ccc”];
//1.keys == 索引 0 1 2
var k = arr.keys()  //迭代器
Console.log(k.next().value)		0
Console.log(k.next().value)		1
Console.log(k.next().value)		2
//2.entries 键值对 key-value
var entry = arr.entries();
Console.log(entry.next().value)		[0,’aaa’]
Console.log(entry.next().value[0])	aaa
//3.values value
var values = arr.values();
Console.log(values.next().value)	aaa
Console.log(values.next().value)	bbb
Console.log(values.next().value)	ccc

//find
var res = arr.find(k => k === “bbb”);
Console.log(res)		bbb

6、以下代码运行的结果是(B) //B自执行函数的作用域是window, 所以当b=20即修改了全局的b

var a = b = 10;

(function(){ //自执行函数

var a =b=20 //基本功 b=20;var a = b

})();

console.log(b); //全局

A.10 B.20 C.报错 D.undefined


7、在JS中,‘1555’+3的运行结果是(C
A.1558 B.1555+3 C.15553 D.报错


8、以下代码运行后弹出的结果是(B

var a = 888;

++a;

alert(a++);

A.888 B.889 C.890 D.891


9、用javascript实现打开一个新窗口,地址为index.html,正确的方法是(A)

A.window.open(“index.html”,””,””); //浏览器dom bom (浏览器对象模型) 单应用页面 div

B.window.open(””,“index.html”,””);

C.window.open(””,””,“index.html”);

D.window.open(“”,””,””);


10、[1,2,3,4].join(“0”).split("")的执行结果是(C

A."1,2,3,4"

B.[1,2,3,4]

C.[“1”,“0”,“2”,“0”,“3”,“0”,“4”]

D."1,0,2,0,3,0,4"


11、以下ECMAScript变量命名格式正确的是(A) 这里考的变量命名,不能以保留字-数字开头,了解下

A._125dollor B.1207A C.-dollor D.this


12、下面不属于ECMAScript规范的范围的是:(C) //C ECMA不制定DOM规范,主要是针对JS语言规范定制

A、数据类型

B、语法

C、DOM事件

D、内置对象和函数的标准库


13、在javascript程序中加入注释,方法有:(AB

A、//注释内容

B、/*注释内容/

C、/*注释内容

D、/*注释内容


14、数组方法中哪个说法是错的(C ) //unshift是头部添加,其它3个是正确的

A、push()尾部添加

B、pop()尾部删除

C、unshift()尾部添加

D、shift()头部删除


解释题

解释:

1、”==”“===”的不同

答案:“==”表示等于,左边等于右边;“===”表示恒等。

console.log(1=='1')//隐式类型转换
console.log(1==='1')//无类型转换

2、函数声明与函数表达式的区别

答案:函数表达式 var fun = function(){} 2种声明方式 函数声明方式存在变量提升,表达式没有提升,即表达式的要先定义再调用。


3、AJAX执行原理

XMLHttpRequest 特点:请求方式,回调结果
在这里插入图片描述

4、分析代码的执行结果并描述原因:

var a = 10;
function f1(){ //函数里也有变量提升初始化a=b=c=undefined
	var b = 2 * a;
	var a = 20;
	var c = a+1;
	console.log(b); //nan:not a number
	console.log(c);
}
f1()

答案:b=20,c=21.

改:nan,21,这是涉及变量提升,即函数f1中会先初始化a为undefined,再a*2就为nan, 再对a赋值。

5、根据当前目录结构在页面动态展示:

//多层级的数据结构 3for(错了)
//递归	自己调用自己
Function Fun(){
	If(满足条件){
		Fun();//自己调用自己	死循环 没有终止条件
	}
}

Function Fun(){
	If(){ //如果有child并且child成都大于0
		Fun();//自己调用自己	死循环 没有终止条件
	}
}

///
var data = [
 {
     name:'AAA',
     child:[
          {name:'a1',child:[{name:'a1-1'},{name:'a1-2'}]},
          {name:'a2'},
		  {name:'a3',child:[{name:'a3-1'},{name:'a3-2',child:[{name:'a3-2-1'},{name:'a3-2-2'}]}]}
     ]
 },
 {
      name:'BBB',
      child:[{name:'b1'},{name:'b2'},{name:'b3'}]
 },
 {
      name:'CCC',
      child:[{name:'c1'},{name:'c2'},{name:'c3'}]
 }
];

//是用递归的方式实现,因为数据的层次是不确定的
//递归实现
function loading(data){ //递归装载所有数据并通过ul li展示
    var html = "<ul>";
    data.forEach(item => {
        html += "<li>"+item.name+"</li>"
        //继续添加child
        if(item.child && item.child.length > 0){
            html += loading(item.child)
        }
    });
    html += "</ul>";
    return html; //所有的节点ul li字符串
}
var res = loading(data);
document.getElementById("tree").innerHTML = res;
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值