问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

javascript笔试题,如下,我想知道function f(){}为什么成立,为什么typeof f之后就是string类型

发布网友 发布时间:2022-05-15 14:12

我来回答

4个回答

热心网友 时间:2022-05-15 15:41

function f(){}是建立一个函数对象,虽然函数内部的函数体是空的,但这个对象本身是真实存在的,所以用if进行条件测试时,它是等价于true的,所以是成立的。
typeof f 的返回值是个字符串(即"function"),把它与变量y的值(即数字1)进行字符串拼接后,结果也是字符串(即"1function"),所以就是string类型咯。

热心网友 时间:2022-05-15 16:59

很多代码,当你不懂的时候,你可以把它拆开来看。

我这么拆开,你可能就懂了。

var y=1;
f=function(){}//定义一个函数,不过函数体为空,本质来讲就是一个函数对象
if(f)//对象类型永远不为空,这不是对象实例,严格上上来讲f是一个类,
//但由于作用域的原因,这里的f在原来的if块内不可见,这么拆解,破坏了作用于,但不影响if判断
//跟int,string一样,是个类,类不可能为假
//空字符串,0,null,false这些为假,但string,number,bool不可能为假
{
stry=typeof y//显然typeof 返回字符串
y+=stry//数字+字符串,会自动转换成字符串
}
console.log(y)

不明白可追问

追问var a;var y=1;
console.log(a);console.log(a+y);
console.log(typeof a);console.log(typeof a+y);
我想知道console.log(a);时得到的是undefined,此时是什么类型
是所有数据遇到typeof xx,都会被转为string类型吗

热心网友 时间:2022-05-15 18:34

这题考的是 JS 预解析相关,预解析时,寻找行首为var, function 关键字的语句。
当 function 关键字在行首,它就是【函数声明语句】。
当 function 关键字不在行首,它就是【函数表达式】。
比如 (function () {}) (); 和 !function () {};

这题中 function 被 if( 挡住,所以是【函数表达式】,函数名 f 只能在函数体内使用(当前作用域)。
if 条件语句可以是任何值,但会被转成布尔类型,转成布尔值 非空即真,if 条件为true。
f 在这里是未声明的变量,类型为 undefined,typeof 输出字符串“undefined”。
1 + “undefined”拼接成字符串“1undefined”。

热心网友 时间:2022-05-15 20:25

我的理解是 function f() 返回布尔是true 执行if里面的语句 但是fc f()本身加了if的()变立即执行函数了 执行完销毁 所以typeof f 这个f是undefined 然后typeof undefined 返回的就是字符串的“undefined”局部可以访问到全局 所以是 1 + “undefined” 用到隐式类型转换 返回 “1undefined"
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
红米手机怎么设置仅在wifi下载 映泰A770L3 6.x详细参数 映泰A770L3 6.x重要参数 问心诗集电子书txt全集下载 《第26局世界大学生运动会诗歌集》txt全集下载 自由体诗的欣赏txt全集下载 徐志摩诗全集txt全集下载 站立的近义词有哪些 站立的近义词是什么 小学语文教师工作评价1000字 吉林电气工程学院什么样 第一个“红色资本家”是谁呢?中国的 小米MAX开不了机了,充电也没反应。 小米3手机变砖头了,在开机界面一直不动,求解决办法 小米max刷机成砖怎么办 小米MAX失败变砖开不了机了怎么办 小米max2变成砖头什么都开不了 小米MAX2黑砖,有救吗? 微信被误卸裁怎么办? 刚刚手机点错了微信卸载怎么能再充回复? 推广课程类产品,有哪些渠道和技巧能提高流量 姓王83年二月初一叫什么名字好 在当今这个信息化的时代,我们该怎样做才能避免信息泄露? 请问昨天为该股的第一个涨停板选股公式怎么写? 求一选股公式 借呗 影响买房贷款吗? 哪位前辈有通达信五线之上第一阳的选股公式,先谢了 中国工商银行汇贝生活卡秘密超限了怎么办 用牛油串串香底料,吃到后面有点腻,心头有点闷,该吃点什么? 马路边上串串香的菜品都有哪些种类?有不辣的吗? 如何在workbench中打开chemkin 做进口红酒生意,怎么来赚自己的第一桶金?怎样来谈客户?怎样来打开销路? 买的手机,深圳到南阳的顺丰快递多久能到? 北京到哈尔滨顺丰手机多久能到 在官网买手机要多长时间能发货?收到手里需要几天? 酒精防锈吗 成语提什么吊胆 提什么掉什么成语 生什么活虎,什么疾什么快,提什么吊什么 煮米饭时开水下米好还是生水下米好?! 提心吊胆的吊部首是什么 提心吊胆的吊可以组什么词 电饭锅的节电方法是什么? 燃气热水器 洗澡途中关一下再开有冷水出来,如何解决这一难题 芝麻分632在那贷款 芝麻分632能去哪里贷款? 征信花没逾期芝麻分632能做什么贷款? 我芝麻信用分632想贷一笔款不需要押金的,哪里可以贷? 我的电脑玩英雄联盟(LOL)很卡,求原因!!! 还有耳机插入无法讲话,跪求解决!! 玩英雄联盟 耳机没有麦克风 就不能语音怎么办 为什么玩英雄联盟有手机耳机能听到别人说话自己却说不了话?有转接线