Javascript读书笔记(一)

来源:互联网 发布:斯凯网络 编辑:程序博客网 时间:2024/04/27 12:21

Hello,大家好,好久没有更新博客了,博主这几天在干嘛呢?博主在恶补看书学习中,本来准备每天都更新一篇博客,但发现博客必须得是精华才行,大家才愿意看,都是流水账式的文章,大家看的也累。除非每天都有新的内容、新的思路这样每天都写博客才有意义。
废话不说了,开始我的表演了。

该系列读书笔记将持续更新,更新完毕后再出一个精华版总结,方便查阅


首先来看看一张图,关于前端需要看的书籍:
这里写图片描述


相对于Html与Css来说,Javascript要看的书籍真是太多了,但我还是觉得Html与Css比较难。

今天要做读书笔记是来自书籍《javascript高级程序设计》,在我寻找javascript参考书教材的时候,很多人都推荐了这一本书,号称是读十遍之后肯定能进BAT。书是好书,但是看完之后能不能进BAT就看自己的能力了,要进BAT基础必须得好,而且也不单单是考察javascript的知识内容。总而言之,这本书推荐给大家。

开始正式内容:

  1. Javascript有五种基本数据类型:null,undefined,Boolean,Number,String
  2. 利用typeof来判断变量的数据类型,比较特殊的是typeof null的结果是object。可以认为null是指向空对象的引用,所以null的类型为object。用typeof判断数据类型时,返回的是字符串,例如 typeof “hello“,它输出的结果是“String”,记住有双引号
  3. NaN是指Not a number,常用来判断是否为数字
  4. parseInt(“字符串”,”进制”),检索字符串会忽略前面的空格,直到找到第一个非空字符
  5. parseInt会对空字符串输出NaN,Number会对空字符串输出0,parseFloat会对空字符串输出NaN
  6. ojbect常规属性包含constructor()hasOwnProperty(“string format property”)propertyIsEnumerable(“string format property”)toLocaleString()toString()valueOf()。后面两个是返回对象的字符串。
  7. 位操作符包括NOT(~)、AND(&)、OR(|)、XOR(^)、左移(<<)、右移有符号(>>)、右移无符号(>>>)
  8. 逻辑与操作符属于短路操作,如果第一个操作对象返回false,则停止对后面的操作对象进行求值
  9. 函数的参数不是必须的,不定义参数,也可以用arguments[]来获取输入的参数
  10. 修改arguments[]中的值会同步到对应的命名参数。arguments的长度由传入参数的个数决定,取长度用length
  11. 参数传递都是值传递,不会是通过引用传递
  12. javascript不是标准的面向对象语言,它没有重载,但是可以通过判断输入参数的数据类型(typeof parameters)和参数的个数来进入不同的分支,模拟重载
  13. 作用域链是从 当前执行代码所在的环境对象=>外部环境对象=>全局环境变量对象。全局环境是最末端执行环境。
  14. 作用域可以向上搜索变量,但不能向下搜索
  15. 没有块级作用域,这是与c、c++或java不同的地方,会是面试的考点
  16. 使用var声明的变量会自动被添加到最接近的环境中
  17. 垃圾回收策略一般不用引用计数策略,这样存在性能问题,例如循环引用的时候就会永远清除不了垃圾
  18. 基本类型保存在栈里(heap),引用类型保存在堆里(stack)
  19. 基本类型变量拷贝是创建值的副本;引用类型变量拷贝是复制指针,因此引用类型拷贝出来的两个变量始终指向同一个对象
  20. 可以用对象字面量来创建函数,创建函数时属性名可以是字符串。例如 var obj = {“name”:”test”,age:18};在这个例子里name就是用字符串形式来表达属性名,age就没有用字符串形式,两个方法都可以创建属性
  21. var person = { } 、var person = new Object()、 var person = new Object。这三个方法都是等价的
  22. var person = {};person.name = “Test”。这是点表示法
  23. var person = {};person[“name”] = “Test”。这是方括号表示法
  24. 点表示法不能通过变量形式来表达属性,但是方括号法可以。
    var person = {};
    var propertyName = “name”;
    person[propertyName] = “Test”;
    由此可知,方括号法里的属性要用字符串形式表达,如果不用字符串可被处理为一个变量,这里要分辨清楚
  25. 数组不同点在于每一项都可以保存任何类型的数据
  26. 创建数组的方法:
    var arr = new Array();
    var arr = new Array(20);
    var arr = new Arrary(“red”,”blue”)
    与c语言不同的地方在于,c创建数组的方式为 int arr[] = {1,2,3,4}
    可省略new操作符
    var arr = [];
    var arr = [1,2,]; 不要这样,在最后写逗号
    var arr = [,,,,,]; 也不要这样
    var arr = [“red” , “blue”];
  27. 数组的length不是可读的,可修改。可利用这个特性,动态修改数组长度,可方便的在数组末尾添加新项
  28. 检测数组的方式
    if(value instanceof Array){}
    if(Array.isArray(value)) 推荐
原创粉丝点击