JS 基础知识点及常考面试题(二)1

顺序Point

'==' '==='

'=='案例一

  • object/function == 原始(基本)类型
    把 object 等引用类型转为原始类型再进行判断
  • '1' == { name: 'yck' } => '1' == '[object Object]' =>//flase

'=='案例二

[] == ![]

  • 0 == false
  • true
以下运算流程
  • 运算符 == ! 运算符的优先级 结合性
  • ==左结合 !右结合优先级! > ==
  • 计算机先运算 ![]
  • 运算对象布尔 运算结果布尔
  • ![]数据类型不同,需求转布尔
  • console.log(Boolean([])) => true
  • ![] => false
  • 对于 ==的运算,左右分别为[]Boolean
  • 引用数据类型转原始类型,机制 => 优先转数字 => [] => 0
  • 最终 比较 0 == false
  • //output true
以下知识点
  • 转Boolean (需要转布尔时,否则转原始类型不等于转布尔)
    在条件判断时,除了 undefined, null, false, NaN, '', 0, -0,其他所有值都转为 true,包括所有对象
    • console.log(Boolean([])) => true
  • js运算符优先级 ==左结合 !右结合 优先级高
    • 运算对象为布尔
    • 运算结果为布尔
    • []转布尔 对象 转布尔 为 true console.log(Boolean([]))
    • console.log(![]) => false
  • 对象Object 引用类型 与基本类型比较 类型转换
  • == 左右两侧数据类型不同 需要将引用类型转换为原始类型才能比较和进行隐式转换
  • 对象的转换原始类型 调用内置的 [[ToPrimitive]] 函数 顺序执行
    • 如果已经是原始类型了,那就不需要转换了
    • 调用 x.valueOf(),如果转换为基础类型,就返回转换的值
    • 调用 x.toString(),如果转换为基础类型,就返回转换的值
    • 如果都没有返回原始类型,就会报错
  • []转原始类型 优先转数字 [] => 0
小结
  • 运算符的优先级和结合性
  • 引用类型需求转布尔时先转布尔,且为true
  • 未指定转原始类型,先valueOf,后toString,均失败则报错
  • null.undefined无toString方法,报错

补充 == 比较 undefined null

知识点

js ==比较规则

基本数据类型(标量):类型相同 直接比较NAN特例
——————————类型不同,左右转为数字比较
引用类型:对象的转换原始类型 调用内置的 [[ToPrimitive]] 函数
————优先valueOF,再然后toString

null undefined 特例
  • undefined 视为标量/基础数据类型,与不同类型标量比较,转数字
  • null 空对象,空指针,调用引用类型转原始类型方法,但是null本身无valueOf,toString方法 ,因此始终返回false

标量 即基本数据类型

null == undefined // true 

null !== undefined // true  全等匹配  不全等 返回false

Boolean(undefined) // false   

Boolean(null)// false  
  
console.log(Number(undefined)) //NAN 

NAN == '标量'/'引用类型' // false NAN的任何运算结果NAN 

undefined==false // false  标量 类型不同 均转数字 转换失败 返回NAN 即false

null==false // false  对象方法转换基本类型
// null空指针,无valueOf,toString方法 故而返回false

'abc'==true // false 标量比较,转数字

' \t\r\n ' == 0     // true

关于控制台(gg,vscode)返回值和undefined

函数{}或者表达式()的返回值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容