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

简介: C1能力认证训练题解析 _ 第三部分 _ JavaScript基础(2)

七、对象属性

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

var obj = {name: 'lisi', city: '北京', age: 21}
console.log(obj._______)
// 预期输出结果:21

答案:age


在对象中对象的变量点方式可以是查询或者添加一个属性,预期结果为21;对象中的age属性对应的值为21,那么获取这个属性就得到了它对应的值。


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

var obj = {
    name: '王五',
    friends: ['张三', '李四'],
    age: 23
}
console.log(obj.friends[____])
//预期输出结果:李四

答案:1


obj这个对象的friends属性是一个数组,现在要打印这个数组的某一个索引上的值,打印结果是李四,李四是数组的第一项(数组下标从0开始)


八、函数定义与调用

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

function foo(a, b) { 
    return a * b 
} 
console.log(foo(8, ___)) 
//预期输出:32

答案:4


该函数有两个参数:a,b。函数执行的时候返回 a * b的值,函数调用时,给出了第一个参数值为8,最终返回32,所以第二个参数是4。


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

var obj = {
    name: '小明',
    friends: ['张三', '李四'],
    hobby: ['篮球', '足球', '游泳', '看书'],
    age: 23,
    getNewFriend: function (newFriend) {
        this.friends.push(newFriend)
    }
}
obj._______('王五')
console.log(obj.friends[2])
//预期输出:王五

答案:getNewFriend


obj对象其中一个属性的值是一个函数,那么在取这个属性值的时候,后面加上()就代表调用这个函数;


这个函数(我们可以称之为这个对象的方法)的作用是将它的参数追加到该对象的friends属性值(数组)的末尾;


预期输出的打印是obj这个对象的friends属性值的索引为2的值,而friends属性在这个对象被定义的时候最大索引是1,显然它被push进了一个值。由此可知空格处该填什么了。


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

var checkNum = function (num) {
    return num % 2 === 0
}
if (checkNum(8)) {
    console.log('Hello')
} else {
    console.log('World')
}
//预期输出:____

答案:Hello


将一个函数表达式赋值给了checkNum变量,后面就可以使用checkNum来调用这个函数了;


除以2取余为0,简单来说,这个函数的作用是判断参数是否是一个偶数。


九、常见内置函数

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

if (isNaN('.67') === ___) { 
    console.log('hello') 
} 
//预期输出:hello

答案:false


isNaN函数当参数是一个数字或者数字字符串的时候,返回真,其他返回假;


在大多数编程语言中,0.89这样的小数也可以使用.89来表示,省略掉0。


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

console.log(parseInt("21", ____))
//预期输出:17

答案:8


parseInt这个内置函数会把第一个参数按照第二个参数指定的基数(或者说是进制)转成一个十进制整数并返回;


现在第一个参数是"21",最终转成的10进制数是17,而八进制下的21就是10进制下的17。


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

console.log(parseFloat('8.9a89bd'))
//预期输出:____

答案:8.9


parseFloat会将给定的字符串转成一个浮点数,从给定的字符串的右边开始,一个一个字符的比对,直到不能构成一个有效的浮点数为止。


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

if (isNaN('3e4') === false) {
    console.log('Hello')
} else {
    console.log('World')
}
//预期输出:____

答案:Hello


isNaN内置函数是判断一个字符串是否不是一个数字;此处 3e4 是一个数字,所以isNaN返回false,false===false。


在JavaScript中数字的表示有很多种,例如十进制的整数,十进制的小数,科学计数法(例如:4e20表示4 乘以 10的20次方),十六进制表示法(例如:0x13af),八进制表示法(例如:012)等。


十、字符串定义与转义字符

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

var str = '\'这是为什么呢?\''
console.log(str)
//预期输出:____

答案:'这是为什么呢?'


在单引号定义的字符串中出现了单引号,但是单引号前面使用了反斜杠\,即该单引号被转义了,那么这个单引号在该字符串中直接作为一个单引号存在;


在单引号定义的字符串中使用单引号,如果不做转义将会报语法错误。


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

var str = '\"这是为什么呢?"'
console.log(str)
//预期输出:____

答案:"这是为什么呢?"


在单引号定义的字符串中出现了双引号,可以直接使用,不会报语法错误。并且双引号前加转义符(\)和不加效果一样。


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

var str = '\\n这是为什么呢?"'
console.log(str)
//预期输出:____

答案:\n这是为什么呢?"


转义符本身也能被转义,转义后就被当成一个普通的反斜杠字符(\)使用,不再具有转义的效果。


十一、字符串常见的方法和属性

image.png

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

var a = "abccba"._______("b")
console.log(a)
//预期输出结果:4

答案:lastIndexOf


该题属于根据字符串返回它在整个字符串索引位置的题型,如果使用indexOf()方法则结果是1,那么另外一个方法lastIndexOf()则返回符合预期输出结果,意思就是b位于索引位置4。


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

var str = "a1-b2-c3-d4"
console.log(str._____('_'))
//预期输出结果:['a1', 'b2', 'c3', 'd4']

答案:split


split切割,根据代码及预期结果可知字符串转为了数组,故字符串使用切割函数。


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


var str = "JavaScript是一门动态类型的语言"
console.log(str.substring(4, ____))
//预期输出结果:Script

答案:10


字符串的substring方法是截取原字符串的一部分。截取的规则是从第一个参数表示的索引位置开始(包含该字符),到第二个参数表示的索引为止结束(不包含该位置字符)。


如果 第一个参数 等于 第二个参数,substring 返回一个空字符串。


如果省略 第二个参数,substring 提取字符一直到字符串末尾。


如果任一参数小于 0 或为 NaN,则被当作 0。


如果任一参数大于 str.length,则被当作 str.length。


如果 第一个参数 大于 第二个参数,则 substring 的执行效果就像两个参数调换了一样。


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


var str = "AbcDe"
console.log(str.toUpperCase())
//预期输出结果:____

答案:ABCDE


字符串的toUpperCase方法是将该字符串中的所有英文字母转成大写。


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

var str = "Chinese"
console.log(str.charAt(3))
//预期输出结果:____

答案:n


字符串的charAt方法的参数会被作为索引,最终会返回字符串中该索引所对应的位置的值。


十二、数组常见方法与属性

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

var arr = ['e', 'd', 'f'] 
var str = arr.___() 
console.log(str) 
//预期输出结果: e,d,f

答案:join


在数组上调用一个方法,返回一个字符串,并且这个字符串是数组里面的每个元素以逗号相连。就是将数组的每个元素连接起来,join方法正好能实现此功能。


join方法在不给参数的时候就是以英文的逗号连接数组的每个元素。


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


var arr = ['tree', 795, [0, 1, 2]]; 
arr.______([4,9,10]) 
console.log(arr[0][1]) 
//预期输出结果: 9

答案:unshift


arr[0][1]是指数组arr索引为0的值,再取其索引为1的值。


如果arr[0]的值为[4,9,10],则arr[0][1]的值为9。


所以该数组方法就是将参数[4,9,10]加到数组arr的开头,unshift能实现此功能。


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


var arr = [1,2,3,'a','t',45,'r',9]; 
var newArr = arr.slice(____, 6) 
console.log(newArr[2])
//预期输出结果:45

答案:3


slice方法会截取原数组的一部分并返回,第一个参数表示开始的索引位置的元素(包含该元素),第二个参数代表结束的索引位置的元素(不包含该元素);


该题中newArr[2]的值为45,又因为newArr是从arr中截取出来的,所以newArr应该为['a', 't', 45]


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


var arr = ['a', 'b', 'c', 'd']; 
var str = arr.______().join('')
console.log(str) 
//预期输出结果:dcba

答案:reverse (翻转)


最终输出的是一个字符串,而join方法就是将数组中的元素用该方法的参数作为分隔符链接起来形成一个新的字符串,除此之外空格处的方法将数组arr进行了反转。


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


var arr = [
    {
        name: '张三',
        age: 24
    },
    {
        name: '李四',
        age: 32
    },
    {
        name: '王五',
        age: 19
    }
]
arr.sort(function (item1, item2) {
    return item1.age - item2.age
})
console.log(arr[____].name)
//预期输出结果:李四

答案:2


sort() 从小到大排序,sort方法会接受一个回调函数作为参数,并且会给这个回调函数传两个值,这两个值即为数组中相邻两个元素,如果这个回调函数返回的是一个小于0的数,那么第一个值就在第二值的前面,等于0的话不变,大于0的话,第一个值就在第二个值的后面;


题中的回调函数的返回值是第一个值的age属性减去第二个值的age属性,判断结果;最后做了升序排列,李四就位于索引位置3。

相关文章
|
3天前
|
JavaScript 前端开发 C++
|
3天前
|
JSON 前端开发 JavaScript
【JavaScript技术专栏】JavaScript异步编程:Promise、async/await解析
【4月更文挑战第30天】JavaScript中的异步编程通过Promise和async/await来解决回调地狱问题。Promise代表可能完成或拒绝的异步操作,有pending、fulfilled和rejected三种状态。它支持链式调用和Promise.all()、Promise.race()等方法。async/await是ES8引入的语法糖,允许异步代码以同步风格编写,提高可读性和可维护性。两者结合使用能更高效地处理非阻塞操作。
|
3天前
|
XML JavaScript 前端开发
【JavaScript】实战训练小项目-WebAPI
【JavaScript】实战训练小项目-WebAPI
9 1
|
3天前
|
前端开发 JavaScript TensorFlow
如何将训练好的Python模型给JavaScript使用?
本文介绍了如何将TensorFlow模型转换为Web格式以实现浏览器中的实际应用。首先,简述了已有一个能够检测扑克牌的TensorFlow模型,目标是将其部署到Web上。接着,讲解了TensorFlow.js Converter的作用,它能将Python API创建的GraphDef模型转化为TensorFlow.js可读取的json格式,用于浏览器中的推理计算。然后,详细说明了Converter的安装、用法及不同输入输出格式,并提供了转换命令示例。最后,文中提到了模型转换后的实践步骤,包括找到导出的模型、执行转换命令以及在浏览器端部署模型的流程。
17 3
|
3天前
|
SQL 缓存 JavaScript
深入解析JavaScript中的模板字符串
深入解析JavaScript中的模板字符串
14 1
|
3天前
|
JavaScript 网络协议 数据处理
Node.js中的Buffer与Stream:深入解析与使用
【4月更文挑战第30天】本文深入解析了Node.js中的Buffer和Stream。Buffer是处理原始数据的全局对象,适用于TCP流和文件I/O,其大小在V8堆外分配。创建Buffer可通过`alloc`和`from`方法,它提供了读写、切片和转换等操作。Stream是处理流式数据的抽象接口,分为可读、可写、双工和转换四种类型,常用于处理大量数据而无需一次性加载到内存。通过监听事件和调用方法,如读取文件的可读流示例,可以实现高效的数据处理。理解和掌握Buffer及Stream能提升Node.js应用的性能。
|
3天前
|
JavaScript 前端开发 开发者
Node.js的包管理和npm工具深度解析
【4月更文挑战第30天】本文深入解析Node.js的包管理和npm工具。包管理促进代码复用和社区协作,包包含元数据描述文件`package.json`和入口文件。npm提供搜索、安装、发布等功能,通过命令行进行操作,如`install`、`search`、`uninstall`。npm支持版本控制、全局安装、脚本定义及私有仓库。理解和熟练运用npm能提升Node.js开发效率。
|
3天前
|
前端开发 JavaScript 数据安全/隐私保护
前端javascript的DOM对象操作技巧,全场景解析(二)
前端javascript的DOM对象操作技巧,全场景解析(二)
|
3天前
|
移动开发 缓存 JavaScript
前端javascript的DOM对象操作技巧,全场景解析(一)
前端javascript的DOM对象操作技巧,全场景解析(一)
|
3天前
|
JavaScript 大数据 开发者
Node.js的异步I/O模型与事件循环:深度解析
【4月更文挑战第29天】本文深入解析Node.js的异步I/O模型和事件循环机制。Node.js采用单线程与异步I/O,遇到I/O操作时立即返回并继续执行,结果存入回调函数队列。事件循环不断检查并处理I/O事件,通过回调函数通知结果,实现非阻塞和高并发。这种事件驱动编程模型简化了编程,使开发者更专注业务逻辑,为高并发场景提供高效解决方案。

推荐镜像

更多