函数若是不return则默认返回undefined

const value=()=>{let a=3;
}
let value_test;
console.log(value(),value_test);  // undefined   undefined
console.log(typeof value,typeof value_test);  // 

argument并不是一个真正的数组,它拥有一个length属性,但是它没有数组其他的方法。


  • JavaScript只有一个数字类型。它在内部被表示为64位的浮点数。所以,它的1.0和1值是相同的。
    我测试了一下,===> 类型是相同的。
console.log(1==1.0);  // true
console.log(1===1.0);  //true
  • JS没有字符类型,它不像C++,'a'表示字符,在JS中表示一个字符是创建一个字符串。
    字符串是不可变的。什么叫不可变呢。(有没有一种浓浓的“人可以被毁灭,但不能被打败”的海鸣威既视感)
str+='a';
//上面这句话经过了哪些骚操作呢?   1.拷贝str,记为temp   ==>   2. temp末尾加上1 ===>  3.将str指向temp并且  **毁灭原来的str**

字符串是可以被毁灭的,但是不会被改变。恩,就是这样。
JS的字符是十六位的.这是历史遗留问题。JS被创造的时候,Unicode是一个16位的字符集,So~(16bits = 2bytes ==> 每个字符需要两个字节,C++中char1个字节,int两个字节,某种程度某种情况上来说JS比较浪费资源?)

  • 下面列出的值被当做假的(false)
    - false
    - null
    - 0 数字0
    - ' ' 空字符串
    - NaN 数字NaN
    - undefined
    其他的所有值都表示为真,包括true,包括"false"字符串
    我在react中遇到的JS基础:空数组被作为判断源的时候,是true!!! [] 是true, [] 是true, [] 是true, [] 是true, [] 是true, [] 是true, [] 是true

  • for in通常用来遍历带有key值的对象。不推荐用来遍历数组,因为for in会将扩展的对象也遍历进来。

var my_obj = {a: 1,b: 2
}
Object.prototype.c = 30;
for (item in my_obj) {console.log(item);
} //最后输出a,b,c

根本原因在于有的时候我们只想要输出a,b。在原型上定义方法这种操作我们完全不知道谁会去做,这让程序非常不可控制,所以就有了 hasOwnProperty这个判断方法。
for in是很强大的,它将它的手伸向了obj本身就有的属性,还伸向了原型上扩展的属性。

for (item in my_obj) {if (my_obj.hasOwnProperty(item)) {console.log(item);}
} //最后输出a,b

关于parseInt 和 Number的差别

var a=Number("");  // 0
var b=parseInt("");  // NaN
    console.log(Number(""),Number(null),Number(String);  // 0  0  NaNconsole.log(parseInt(""),parseInt(null),parseInt(String); // NaN NaN  NaN

上面的例子是我在 2017-8-28 (今日)发现的,因为通过 style[attr]获取属性的时候类型都为String,哪怕是没有设置样式也是string,在这个时候 Number和parseInt非常有默契地保持了一致。

还有一件有趣的事情

    var a=new String('0');console.log(a);var b=new String(0);console.log(b);

返回值都是一模一样的,都是String {0: "0", length: 1, [[PrimitiveValue]]: "0"}
那么,我们平时返回空样式的时候是怎么样的呢?

    let box2=document.getElementsByClassName("box2")[0];let test=new String();let box_test=box2.style.width;console.log(test==box_test);  // trueconsole.log(test===box_test); //falseconsole.log(typeof test,typeof box_test); // object string// 前面相等是因为先做了一次类型转换,将string转换成了object

意思是说,空字符串不等于 null,判断空字符串还是用 字符串长度 length 来判断吧。

true和fales是区分大小写的,不存在True和False作为boolean变量。

转载于:https://www.cnblogs.com/can-i-do/p/7197956.html

JS精粹知识点和我的解释相关推荐

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

    JS 基础知识点及常考面试题(二) 涉及面试题:== 和 === 有什么区别? 对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换,这也就用到了我们上一章节讲的内容. 假如我们需要对比 ...

  2. html属性 id去重,JS相关知识点总结

    一.获取元素方法 1.document.getElementById("元素id号"); 可以使用内置对象document上的getElementById方法来获取页面上设置了id ...

  3. c++局部对象是什么_小白学Web前端难点是什么 JS进阶知识点有哪些

    小白学Web前端难点是什么?JS进阶知识点有哪些?JavaScript是前端小白学习的难点,但又是前端工程师必须要掌握的技能.很多同学反映JavaScript知识点多而杂,不知道如何下手,下面就给大家 ...

  4. JS 进阶知识点及常考面试题

    JS 进阶知识点及常考面试题 手写 call.apply 及 bind 函数 涉及面试题:call.apply 及 bind 函数内部实现是怎么样的? 首先从以下几点来考虑如何实现这几个函数 不传入第 ...

  5. JS 基础知识点及常考面试题(一)

    JS 基础知识点及常考面试题(一) 原始(Primitive)类型 涉及面试题:原始类型有哪几种?null 是对象嘛? 在 JS 中,存在着 6 种原始值,分别是: boolean null unde ...

  6. java基础教程知识点,[Java教程]js基础知识点总结

    [Java教程]js基础知识点总结 0 2016-11-01 21:00:04 如何在一个网站或者一个页面,去书写你的js代码: 1.js的分层(功能):jquery(tool) 组件(ui) 应用( ...

  7. 实战知识点(一):CSS和JS部分知识点的运用(小A一轮)

    CSS和JS部分知识点的运用(小A一轮) 目录 CSS和JS部分知识点的运用(小A一轮) 首页 首页大标题蓝色边框动画的实现 头部导航条黄色块的实现 第三个英文标题透明字体的实现 通过伪元素修饰各个标 ...

  8. html 引入js 兼容,JS跨浏览器兼容性解决思路及方案汇总,常见JS兼容性知识点汇总...

    上篇文章我们介绍了,处理CSS浏览器兼容性的4个解决方案:浏览器CSS样式初始化.浏览器私有属性,CSS hack语法和自动化插件,有兴趣的可以看看,链接放到本文结尾 本文主要介绍JS的跨浏览器兼容性 ...

  9. JS 基础知识点与高频考题解析

    变量类型 1,介绍js的基本数据类型.     Undefined.Null.Boolean.Number.String 2,类型判断用到哪些方法? typeof typeof xxx得到的值有以下几 ...

  10. JS高级知识点最新最全梳理上篇(codewhy视频)

    文章目录 一.浏览器工作原理和V8引擎 1.浏览器内核 2.浏览器渲染过程 3.JS引擎 4.V8引擎 二.内存管理及作用域提升 1.内存管理 2.JS垃圾回收机制 3.作用域提升 4.作用域提升面试 ...

最新文章

  1. How to set window title name on Oracle EBS Form?
  2. incompatible with sql_mode=only_full_group_by
  3. 中学计算机科学教育,计算机科学教育周 – Tsinghua International School 清华大学附属中学国际部...
  4. boost::mp11::mp_remove_if_q相关用法的测试程序
  5. 亚信安全火力全开猎捕“坏兔子”,全歼详解
  6. 关于优酷SDK之setOnADPlayListener
  7. Exception in thread “main“ java.lang.IllegalArgumentException: http://www.dmg.org/PMML-4_4(没搞定)
  8. Javascript 面向对象编程
  9. java例程练习(一维数组)
  10. 实锤了?哪吒涉嫌抄袭起诉已立案:公布多张相似对比图
  11. 关于Java中“+”加运算符和“”向前移位运算符混合使用时出现的错误
  12. PyCharm: Simplify chained comparison
  13. 听了那么多语音识别,你知道它的发展史吗?
  14. 1.枚举类型、声明指针、常量、存储类型、运算符优先级记忆
  15. Chrome谷歌浏览器离线安装包下载
  16. 决策树cart算法实战
  17. php网站xiazai工具,php程序员工具箱下载_php程序员工具箱v1.0版本-php中文网工具下载...
  18. Oracle 11g 创建数据库
  19. Rufus,Etcher,黑苹果-最方便的启动盘制作工具
  20. 阿里云函数计算使用imagemagick处理oss图片

热门文章

  1. oracle 11g 01017,oracle 11G OEM 出现问题 ORA-01017: inv
  2. python测试用例不通过发送报告_python+unittest 多用例测试执行失败的问题
  3. 计算机应用基础任务式教程 素材,计算机应用基础任务化教程教学大纲
  4. html中无序列表做成链接,Beautifulsoup从无序列表中提取文本和链接divulli(斯堪的纳维亚字符)...
  5. 人脸识别-YOLOv5模型目标检测
  6. 10个linux awk文本处理经典案例,Linux awk命令常用案例
  7. linux虚拟内存和win,linux下的vm(虚拟内存)和windows下的作用是一样的,均是防止真实内存资源不足准备的. linux的vm相关参数...
  8. 561. 数组拆分 I
  9. 利用octave求逆矩阵
  10. TypeError: 'list' object is not callable