HTML多媒体内容嵌入知识点:
在HTML中嵌入多媒体内容,如音频或视频文件,正确的标签使用是至关重要的。题目给出了四个选项,正确答案为B,即使用<embed>标签,并将其src属性指向所需嵌入的资源路径。这里的<embed>标签用于嵌入外部应用或交互式内容,如视频、音频、PDF等。而其他选项中,<a>标签和<embed>标签被错误地配对使用了不相关的属性(<a>标签使用了src属性,<embed>标签使用了href属性),这些都是不符合HTML标准的写法。
面向对象多态性知识点:
面向对象程序设计中,多态性是核心概念之一,其定义是指允许不同类的对象对同一消息做出响应。正确答案是C,即针对同一消息,不同对象可以以适合自身的方式加以响应。其他选项描述的情况,并非多态性的定义。例如,一个类派生出多个类是继承的概念,一个对象由多个其他对象组成则是聚合或组合的概念。
JavaScript异步编程知识点:
在JavaScript中,Promise对象用于处理异步操作。题目中,通过Promise链来考察变量name的值变化。Promise链中调用了resolve(),没有调用reject(),因此then()方法中的回调函数会被执行,变量name的值会变成'2'。由于Promise链后还有name='4';的语句,根据异步操作的特性,name='4'会在Promise链中的回调函数执行完毕后执行,因此最后变量name的值是'2'。
JavaScript数组操作和Set知识点:
JavaScript数组的push方法会修改原数组,并返回数组的新长度。题目中vara.push([1,2,3])将[1,2,3]作为一个整体元素放入到vara数组中,因此返回的是数组的新长度,即1。但选项中的数组[1,2,3]是错误的,正确的应为长度值1。
Set对象的size属性返回Set实例中包含的值的数量。题目中var set=new Set([0,2,2,0,0,5,9,{},{},NaN,NaN])创建了一个Set实例,包含了上述值,但其中的0,2重复,两个NaN被视为相等,因此Set中实际的值数量是6。选项中没有给出6,因此题目可能存在错误。
JavaScript跨域通信知识点:
JSONP(JSON with Padding)并非一种跨域技术。JSONP是一种利用script标签可以跨域的特性,通过动态创建script标签加载数据实现跨域的方法。其他选项中,Date构造函数不传参数时自动获得当前时间,setInterval方法返回一个可以用来清除定时器的ID,而非undefined。所有RegExp实例对象确实都可以调用match方法,但是match方法需要正则表达式有g标志时才能返回所有匹配结果。
Node.js环境下的安全风险知识点:
在node.js环境中运行用户上传的自定义代码,如果没有采取适当的沙盒等安全措施,存在多种安全风险。正确的选项包括:大量同步计算可能导致进程卡死,执行process.exit(1)可能会导致进程意外退出,执行require('child_process').spwan()可以调用系统程序,可能导致系统层面的危害,自定义代码抛出的异常可能无法被捕获。
Node.js模块化规范知识点:
require加载模块的过程是同步的,但正确的选项是A和B,即require可以在代码的任意位置执行,但加载模块本身是同步过程。模块最终导出的是module.exports,而exports只是module.exports的一个引用,如果对exports重新赋值,那么exports就不再是module.exports的引用,因此选项C是错误的。
Node.js定时器知识点:
Node.js中的定时器包括setTimeout(), setInterval(), setImmediate(), 和process.nextTick()。这四个函数都用于设定计时器,分别用于在指定的时间之后执行一次回调函数、每隔指定时间周期性执行回调函数、在事件循环的下一个迭代执行回调函数、以及在事件循环中当前执行栈完成后立即执行回调函数。