1、假设 angle 是一个以度为单位的角度,在加上或减去其他角度后,它呈现出任意值。你想将其规范化,使其介于 0(包含)到 360(不包含)之间。如何使用 % 运算符来实现这一点?
可以使用公式 (angle % 360 + 360) % 360 来将角度规范化到 0(包含)到 360(不包含)之间。
2、列出尽可能多的在 JavaScript 中生成包含单个字符的字符串的方法。
-
若源文件使用合适的编码(如 UTF - 8),可直接输入或粘贴该字符,例如:
js let singleChar = 'a'; -
使用
\u{code point}表示法,前提是要保持文件为 ASCII 格式,例如:
js let singleChar = '\u{1F310}';注意原答案中的例子生成的是包含多个字符的字符串,这里修改为生成单个字符的示例。
3、给出一个现实的示例,其中一个模板字符串包含一个嵌入式表达式,该表达式又包含另一个带有嵌入式表达式的模板字符串。
greeting = `Hello, ${firstname.length > 0 ? `${firstname[0]}. ` : '' } ${lastname}`
4、声明一个数组,其元素位于索引位置0、0.5、1、1.5和2处。
在JavaScript中,数组的索引必须是整数,所以无法直接声明索引为 0.5 和 1.5 的数组元素。若只考虑整数索引 0 、 1 和 2 ,可使用数组字面量声明,如:
const arr = [元素0的值, 元素1的值, 元素2的值];
或者使用 Array.of 方法声明,如:
const arr = Array.of(元素0的值, 元素1的值, 元素2的值);
若要设置非整数索引,这不会作为数组元素,而是作为对象属性,如:
const arr = [];
arr[0] = 元素0的值;
arr[0.5] = 元素0.5的值;
arr[1] = 元素1的值;
arr[1.5] = 元素1.5的值;
arr[2] = 元素2的值;
5、创建几个代表人物的对象,并将它们存储在变量harry和sally中。为每个人添加一个friends属性,该属性包含一个数组,其中存储着他们最好的朋友。假设harry是sally的朋友,sally是harry的朋友。当你使用console.log直接记录每个对象时会发生什么?当你使用console.log记录包含对象的字符串时会发生什么?当你调用JSON.stringify时会发生什么?
当直接使用 console.log 记录对象时,控制台会很好地显示对象内容。
当使用 console.log(\ harry=${harry}`) 这种方式记录包含对象的字符串时,会得到无用信息,如 harry=[object Object] 。 调用 JSON.stringify 时,它会将 JavaScript 对象转换为 JSON 字符串,但会丢弃值为 undefined 的对象属性,将数组中值为 undefined 的元素转换为 null 。 由于这里两个对象相互引用, JSON.stringify` 会因循环引用而报错,无法正常生成 JSON 字符串。
6、语句 if (x === 0) console.log(‘zero’) else console.log(‘nonzero’) 有什么问题?如何修复这个问题?
该语句的问题是缺少大括号,在 JavaScript 中,若 if - else 语句块包含多条语句或仅一条语句但为了代码的可读性和规范性,通常需要用大括号将语句块包裹起来。修复方法是添加大括号,正确的写法为:
if (x === 0) {
console.log('zero');
} else {
console.log('nonzero');
}
7、考虑语句 let x = a,下一行以哪些标记开头会阻止插入分号?哪些在实际程序中可能会出现?
下一行以 ( 、 [ 、模板或正则表达式字面量开头会阻止插入分号。实际程序中可能出现的是 ( 和 [ ,例如:
let a = x (console.log(6 * 7))
和
let a = x [1, 2, 3].forEach(console.log)
虽然模板或正则表达式字面量也会阻止插入分号,但在实际中很少会写出
let a = x `Fred`.toUpperCase()
</


827

被折叠的 条评论
为什么被折叠?



