1.JS有什么特点?JS是一个什么样类型的语言。
我当时的答案
JS的特点,快速,安全,无需配置环境。
JS是一个 安全的、具有解释性的 弱类型 语言,变量的 类型 由值来决定。
标准答案
特点:
一种面向对象的语言
一种解释性执行的脚本语言
一种简单弱类型脚本语言
一种相对安全脚本语言
一种事件驱动脚本语言
一种跨平台性脚本语言
//:TODO
2.JS的数据类型有哪些?
Number
string
Boolean
null
undefined
以及
array
object
function
4.以下内容返回什么结果?
1: ‘300’<‘20000’?
2: true> false
3: ‘heollow’ + 1
4: var x,y; var c = x+y // 求c 多少
5:1<2 || ‘nihao’ || []+{} && {}
题目解析:
1. 两个字符串比较,首先比较 索引为 0 的 字符,即 字符 ‘3’ 和 字符 ‘2’进行比较,在ASCII里面查找出 字符’ 3’ 的 十进制 数 为 51, 字符 ‘2’ 字符 的 十进制 数为 ‘50’ ,所以 第一题,结果为 false
2. true 和 false 比较,会进行隐式转换, 转成 Number类型, 结果为 true
3. 操作数 1 的 类型为 字符串,操作数 2 的类型为 Number,所以,1隐式转换为 字符串,结果为 字符串相加为 ‘heollow1’
4. 因为 x 和 y 未定义,所以,x = y =undefined, 但是,C的值是 由 x + y 得出,加号有 隐式转换,会把 X的值 和 Y的值 进行隐式转换, 两个 undefined 转换 数字为 NaN,所以,C的值为 NaN.
5. 先看优先级,优先级为 非与或, 没有非, 就先看 与, []+{} 相加的结果为对象,转为 布尔类型为 true,右侧 的 {} 转为 布尔类型 也得 true, 总体得 true, 结果为 1<2 || ‘nihao’ || true,再看 或运算,1<2 为真,因为得到真了,所以,后面直接不看了,直接返回 true
6:看下面表达式;哪些数据发生了隐式转化?
1:‘aaa’>1
2: ‘’+
3:’’+1
4: 1>2 || ‘aaa’
5: a = 2
6: !0
1.发生了隐式转换 ,'aaa ‘转换为 Nunber 为 NaN , NaN 比 1 小,所以为 false
2. "+ 是一个错误的
3. "+1 会把 1 隐式转换为 字符串1 ,结果为 ‘1’
4. 直接返回结果’aaa’
5. 会发生隐式转换,变成了布尔值 true