1 顺序存取---链式存储;随机存取--顺序存储;索引和散乱---哈希
2 isNaN()函数用来判断一个数是否是NaN;
/只有一个值是NaN或者能被转换为NaN的时候才返回true
console.log(isNaN('e'));//true,因为e可以被转换为NaN
console.log(isNaN('11'));//false,因为字符串可以被转换为数字,不能被转为NaN
console.log(isNaN(null));//false,因为null可以被转换为0,不能被转为NaN
console.log(isNaN(NaN));// true,NaN返回true
3 .[1,2,3,4,5] 的数组的基础上 删除第一个 和 最后一位? [1,2,3,4,5].slice(1, -1)
解析: slice是从第一个参数截取到第二个参数的位置(按索引来截取的),第二个参数可以省略。这里第二个参数是-1,表示截取到倒数第二位。
4 [‘1’, ‘2’, ‘3’].map(parseInt) ( ) ? [1, NaN, NaN]
解析: 执行方法时,map给parseInt传递了三个参数:parseInt(item, index, thisArr)
其中第三个参数会被 parseInt 忽略,因此会依次执行:
parseInt('1', 0)
// radix 为 0,默认以十进制解析字符串,返回 1
parseInt('2', 1)
// radix 为 1,不在 2 ~ 36 之间,返回 NaN
parseInt('3', 2)
// radix 为 2, 字符串却为 3,超出二进制的表示范围,因此要解析的字符串和基数矛盾,返回 NaN
5. 下面哪些语句可以 在JS里判断一个对象oStringObject是否为String。
- oStringObject instanceof String
- typeof oStringObject
6. 下面的C语言语句,哪一个可以把一个32位变量的最高位置为1且保持其它位不变?reg32 |= 1<<31;
|是按位或运算,<<是左移运算,1的二进制是0000 0000 0000 0000 0000 0000 0000 0001(int 类型占4个字节,每个字节8位); 1<<31的意思是将1的二进制左移31位,即将0000 0000 0000 0000 0000 0000 0000 0001 整体左移31位,右边的补零。 结果为1 000 0000 0000 0000 0000 0000 0000 0000。
reg32|=1<<31;的意思是reg32和 1 000 0000 0000 0000 0000 0000 0000 0000按位或(不管32位变量reg32是什么,都可以保证reg32最高位为1,其它位保持不变),并将结果赋给reg32。相当于reg32=reg32|(1<<31)。