首页 > 试题广场 >

执行以下 JavaScript 代码,输出结果为()

[单选题]
执行以下 JavaScript 代码,输出结果为()
var a = 4399 < 0 || typeof(4399 + '');
console.log(a);


  • true
  • string
  • undefined
  • false
  • number
推荐
短路或  如果第一项是true 则结果为true 如果第一项为false 结果 为第二项(第二项不做计算直接返回)
编辑于 2017-03-19 19:31:50 回复(17)
① 有<,>,<= ,>=,运算后输出true或者false ② 没有的话就进行运算并且不会输出true false typeof(4399+“ ”)并不符合条件① 所以执行条件② 验证 a =4399<0||(1+1) 结果等于2
发表于 2018-03-15 18:31:39 回复(1)
我觉得这个题考察了两个知识点:运算符的优先级和逻辑运算符的短路特性。 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence 在这个题目中,小括号( )优先级最高,先计算里面的,4399+""隐式转换成字符串“4399”,然后计算||的左边,左边为false 返回||的右边。
发表于 2017-09-28 15:54:12 回复(0)
||  这个是短路或,也就是||前面为true的话就直接等于前面的值了,不会再看||后面。
这里4399<0是false,所以还需要往后看,4399+''是字符串类型,typeof返回的是值的类型
所以在控制台输出的是String

发表于 2017-03-17 19:13:44 回复(3)
&&左为真返回右边,|| 左为假返回右边,比较好记
发表于 2018-01-17 21:25:59 回复(1)
B
1.4399<0值为false
2.js中字符串的前面或者后面有加号,此时加号为拼接,4399+“” => 4399,原式中的4399被隐式转换成字符串,字符串4399与空字符串拼接的字符串4399 。
发表于 2016-12-17 12:34:34 回复(0)
如果有一个操作符不是布尔值,逻辑或也不一定返回布尔值。这里第一个操作数结果为false,则返回第二个操作数,即string。
发表于 2017-03-04 16:13:41 回复(0)
typeof(4399+' ')z这个是字符串,因为有+,都懂,现在解释为啥结果是string
假设A B都是表达式
A||B  :当A为假时候,结果等于B,当A为真,结果直接为A,不执行B。
A&&B,当A为假时候,直接为false,当A为真,结果直接为B。

发表于 2017-09-30 11:40:24 回复(0)
知识点一 :js基本概念》操作符》布尔操作符 || 
逻辑规则如下
true  ||   true   =true
true ||   false=true
false  ||  false=false
若是第一个值为true  ||  无论是什么数据类型=true
若第一个值为false ||   其他数据类型=第二个数据类型    如题:4399<0=false      false || string =string
其他数据类型 ||   其他数据类型 =第一个数据类型
知识点二:js基本概念》操作符》一元操作符 +
@1:运算方式
number +number =数值相加
number+string=  字符串拼接                如题:4399+“” =string
@2:对非数值会进行函数转换number()
undefined undefined=0
null null=0
boolean true=1 false=0
number 原先的数值
string 
object转为string  

发表于 2018-06-07 20:47:06 回复(0)
与操作:

>如果第一个操作数是对象,则返回第个操作数

>如果第二个操作数是对象,则只有在第一个操作数的求值结果为true的情况下才会返回该对象

>如果两个操作数都是对象,则返回第个操作数

>如果第一个操作数是null,则返回null

>如果第一个操作数是NaN,则返回NaN

>如果第一个操作数是undefined,则返回undefined


或操作:

>如果第一个操作数是对象,则返回第一个操作数

>如果第一个操作数的求值结果为false,则返回第二个操作数

>如果个操作数都是对象,则返回第一个操作数

>如果个操作数都是null,则返回null

>如果个操作数都是NaN,则返回NaN

>如果个操作数都是undefined,则返回undefined


编辑于 2018-08-17 10:50:11 回复(0)
如果都是布尔值才返回布尔值,否则返回最开始的基本类型
发表于 2017-05-11 09:07:42 回复(0)

&&运算,如果前面值为true,则结果为后面的值。如果前面值为false,则值为false.

||运算,如果前面值为true,则结果为前面的值,如果前面的值为false,则结果为后面的值。
typeof(4399)   // number
typeof(4399 + ' ')  // string
发表于 2022-06-23 22:21:06 回复(0)
逻辑与,如果第一个操作数是false,则返回第二个操作数
编辑于 2017-04-24 22:20:40 回复(0)
我真不太明白为什么一个逻辑运算的结果可以不是boolean,我的理解是第一个为false,第二个是字符串string,那么隐式转换成true,那么结果就是true了
发表于 2021-04-18 19:45:29 回复(0)
||为逻辑运算符,只要其中一个是为true的就打印的是true   
先执行4399<0  判断这个值是否为true  如果为true就不执行后面的,要是为false就执行后面的
后面的typeof(4399+' ')这个是为字符串型  所以就打印出了  string


发表于 2021-01-30 11:03:54 回复(0)
发表于 2018-05-30 10:58:00 回复(0)
加法操作:如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后将两个字符串拼接起来。4399+'  '结果是字符串
发表于 2018-06-27 19:18:17 回复(0)

1. 4399<0 真, 会返回第二个操作数的值
2. typeof 返回基本数据类型(4399 与 ""(空字符串) ,先将数字类型4399转换成字符串"4399"与空字符串""得到结果为 "4399")
3. 返回 typeof("4399") == string
发表于 2017-08-05 21:06:57 回复(0)
js 的 || (或运算符),条件1 || 条件2 ,当条件1 为 false 时,则执行条件2,条件1为 true 时,则条件2不执行
发表于 2024-04-11 14:46:30 回复(0)
选B
发表于 2023-11-06 15:40:40 回复(0)
遇到+ ,数字和字符串优先级高于true,false,undefined,null。数字和字符串谁在前面那谁转换。true false,遇数字变为1、0遇字符串变true和false。undefined遇字符串保持其他返回NaN,null 0或null
发表于 2022-01-12 12:55:30 回复(0)