C1能力认证训练题解析 _ 第三部分 _ JavaScript基础

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: C1能力认证训练题解析 _ 第三部分 _ JavaScript基础

一、JavaScript 变量命名规则

(1)在JavaScript中以下哪些变量名全都是非法的(会导致程序报错)?


       A. 1person,name


       B. name,var


       C. $orderwera23,uiuiuqwer4_23aser2


       D. 1person,var


数字或者某些特殊字符开头以及使用了关键字都会导致语法层面报错;


1person数字开头、var是关键字,所以这两个会导致报错。


(2)在JavaScript中,以下哪些变量名不建议使用?


       A. 1person,var,$orderwera23,uiuiuqwer4_23aser2


       B. 1person,name


       C. name,var


       D. uiuiuqwer4_23aser2,name


1persion和var会导致程序报错,不建议使用;$orderwera23,uiuiuqwer4_23aser2 意义不明,不建议使用。


(3)在JavaScript中,以下字符串中那些不能被作为变量名使用?(使用了,程序就会报错)


       A. owefsdfwef2,var,for,myName


       B. for,function,var


       C. owefsdfwef2,var,function


       D. myName,var,function


关键字(保留字)不能作为变量名使用。在JS语法中,for是用来定义循环结构的关键字;function是用来定义函数的关键字;var是用来定义变量的关键字。


owefsdfwef2虽然意义不清,但是一个合法的变量名,使用它并不会报错;myName是一个合法且意义清晰的变量名。


二、逻辑运算

(1)要想以下JavaScript代码符合预期,空格处应该填什么运算符?


var a = 11
var b = 6
if(__(a<b)) {
    console.log(a)
} else {
    console.log(b)
}

//预期输出结果:11

答案:!


输出结果为11,所以是输出a,执行if后的语句,但a<b是false,我们需要使它变为true,所以用逻辑非 !


(2)以下JavaScript代码运行的预期输出结果是?


var num = 55
var str = "55"
if(num === str) {
    console.log("Yes")
} else {
    console.log("No")
}

//预期输出结果为?____

答案:No


变量num为整型55,变量str为字符串"55",全等运算符 (===) 会比较两者的变量值大小和变量类型是否均相同,此处类型不同,所以返回false,执行else后的语句,就会执行console.log("No")语句,预期打印No


(3)以下JavaScript代码运行的预期输出结果是?


var res1 = 5 > 8
var res2 = true
if(res1 && res2) {
    console.log("Yes")
} else {
    console.log("No")
}

//预期输出结果为?____

答案:No


变量res1是表达式5 > 8的结果,即为false。变量res2为true。然后对res1和res2进行与操作,因为res1为false,所以res1 && res2的结果也为false。


与运算,当其中任何一个操作数为false时,该运算的结果为false,只有当两个操作数都为true时,其运算结果才为true。


(4)以下JavaScript代码运行的预期输出结果是?


var res1 = 6 > 3
var res2 = 8 >= 8
var res3 = false
if(res1 || res2 && res3) {
    console.log("Yes")
} else {
    console.log("No")
}

//预期输出结果为?____

答案:Yes


与(&&)的优先级比或(||)的高。所以res1 || res2 && res3的运算循顺序是先计算res2 && res3,然后再将其结果(false)和res1做或运算。  true || false = true


三、隐式类型转换

(1)以下代码的预期输出是?


var arr = [] 
var str 
if (arr) { 
    str = 'hello' 
} 
console.log(str) 
//预期输出为?____

答案:hello


if分支语句中的条件部分会将值或者表达式的值最终转换成布尔值,空数组转换成布尔值为true,所以变量str会被赋值为hello。


(2)要想是一下JavaScript代码运行符合预期,空格处应该填什么运算符?


var a = true 
var b = 2 
var c = a ___ b 
console.log(c) 
//预期输出: 2

答案:*


a和b,也就是true和2执行运算后结果为2,true转为字符串为1,1*2 = 2,所以用乘号*


(3)以下JavaScript代码运行的预期输出结果是?


var res = 567 + '1' - 89
console.log(res) 
//预期输出: ____

答案:5582


数字类型和字符串类型的值进行+运算,会把数字类型的值转成字符串类型的值然后再和另一个字符串进行拼接操作,最后得到一个拼接后的字符串;


字符串和数字进行-运算,会把字符串转成数字,然后和另一个数字相减。


567 + '1' - 89 = ‘567’ + ‘1’ - 89 = ‘5671’ - 89 = 5671 - 89 = 5582


(4)以下JavaScript代码运行的预期输出结果是?


if (null) {
    console.log('Hello')
} else {
    console.log('World')
}
//预期输出:____

答案:World


null是JS里面一个特殊的值,表示什么都没有,在这里会被转成布尔值。转成布尔类型的话,则为false


(5)以下JavaScript代码运行的预期输出结果是?


var a = {}
if (a) {
    console.log('Hello')
} else {
    console.log('World')
}

//预期输出:____

答案:Hello


{ }表示一个空的对象,在这里会被转成布尔值。在JS中,空对象转成布尔类型的话,其值为true


四、条件分支

(1)以下JavaScript代码的预期输出是?

var a = 8 
if (a > 7) { 
    a = 3 
} 
if (a > 4) { 
    a = 5 
} 
console.log(a)

答案:3


题中有两个if分支的结构,a=8时,a > 7 为真,执行该分支的代码,a = 3,然后代码继续往后执行,此时a=3,a > 4 为假,所以a = 5这个赋值语句不会执行,a还是为3。


(2)要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?


var expr = ____ 
switch (expr) { 
    case 1: 
        // 代码块1 
        console.log(111); 
    case 2: 
        // 代码块2 
        console.log(222); 
    case 3: 
        // 代码块3 
        console.log(333); 
        break;  
    case 5: 
        // 代码块5 
        console.log(111); 
    case 6: 
        // 代码块6 
        console.log(222); 
        break; 
    default: 
        // 代码块7 
        console.log(111); 
}
//预期输出:111 222

答案:5


如果case的代码块里面最后没有break,那么当前case被执行后,会立即执行下一个case(不管值是否匹配),直到有一个case的代码块有break为止;


以此类推,只有当expr为5时,会执行代码块5、代码块6,从而打印111, 222 符合预期输出。


五、For循环

(1)想要以下代码运行符合预期则空格处应该填什么整型数字?


for (var i=0; i <= ___; i++) {
    console.log(i)
}
//预期输出结果: 0 1 2 3 4 5

答案:5


循环从0开始,语句2是小于或等于的时候说明会包含空缺的那个数字。


(2)想要以下代码运行符合预期则空格处应该填什么整型数字?


for (var i=1; i <= ___; i+=1) {
    console.log(i)
} 
//预期输出结果:1 2 3 4 5 6 7 8 9

答案:9


语句2空缺结合预期结果来看i的最大值为9,所以i <= 9。


(3)想要以下代码运行符合预期则空格处应该填什么整型数字?


var arr = ['a1', 'b1', 'c1', 'd1', 'e1', 'f1', 'g1', 'h1']
for (var i=0; i < arr.length; i+=___) {
    console.log(arr[i])
}
//预期结果:a1 d1 g1

答案:3


数组的for循环遍历arr[i]指向的就是数组的每一个key所在的值,从a1跳到d1中间跳了3个值(a1是arr[0]、d1是arr[3]、g1是arr[6]),通过规律主要也是看语句三的迭代器+3。


(4)想要以下代码运行符合预期则空格处应该填?

var obj = {
    realName:'张三', 
    phone:13344556789, 
    email:'zhangsan@163.com',
    created_at:'2021-06-12 10:00:00'
}
for (var k in obj) {
    if(k === _______ ){
        console.log(obj[k])
    }
}
//预期结果:zhangsan@163.com

答案:email


对象遍历,赋值的k指向obj的各个键,从realName开始循环,判断k这个键等于什么的时候,打印的obj的值是zhangsan@163.com,主要看哪个键指向的是这个邮箱。


六、Math 内置对象


image.png

(1)表达式 Math.____(13.6589)计算结果为13,则空格处应该填?


floor,小于13.6589的的最大的整数就是13,所以这儿可以使用向下取整的方法floor


(2)要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?(使用中文逗号「,」隔开)


var a = -14.4
var b = 10
var c = Math.____ (a*b)
var d = Math.____ (c)
console.log(d)
//预期输出结果:12

答案:abs,sqrt


首先a*b的默认结果为-144(已是整数,取整方法不适用),已知的Math方法里取绝对值可以将-144转为144;144的平方根正好符合答案,故使用平方根方法


abs:表示返回数字的绝对值

sqrt:表示非负实数的平方根函数


(3)要想以下JavaScript代码符合预期,空格处应该填什么整数?


console.log(Math.sqrt(____))
//预期输出结果:9

答案:81


sqrt:表示非负实数的平方根函数


(4)要想以下JavaScript代码符合预期,空格处应该填什么整数?


console.log(Math.____(3, 4, 89)) 
//预期输出结果: 89

答案:max


给Math内置对象上的一个方法传3个参数,最后返回这三个参数中最大的那个参数。所以这个方法应该是求最大值的方法


(5)要想以下JavaScript代码符合预期,空格处应该填什么(表达式除外)?


console.log(Math.____(8.01))
//预期输出结果:9

答案:ceil 向上取整


相关文章
|
2月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
2月前
|
存储 前端开发 JavaScript
JavaScript垃圾回收机制深度解析
【10月更文挑战第21】JavaScript垃圾回收机制深度解析
113 59
|
25天前
|
JavaScript 前端开发 API
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
Vue.js响应式原理深度解析:从Vue 2到Vue 3的演进
54 0
|
2月前
|
JavaScript 前端开发 索引
JavaScript ES6及后续版本:新增的常用特性与亮点解析
JavaScript ES6及后续版本:新增的常用特性与亮点解析
56 4
|
1月前
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
45 0
|
2月前
|
JavaScript 前端开发 开发者
原型链深入解析:JavaScript中的核心机制
【10月更文挑战第13天】原型链深入解析:JavaScript中的核心机制
38 0
|
2月前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
146 0
|
2月前
|
JavaScript
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
55 0
|
2月前
|
存储 JavaScript 前端开发
Vue.js项目中全面解析定义全局变量的常用方法与技巧
Vue.js项目中全面解析定义全局变量的常用方法与技巧
55 0
|
2月前
|
前端开发 JavaScript UED
JavaScript异步编程深入解析
【10月更文挑战第8天】JavaScript异步编程深入解析
19 0

推荐镜像

更多