美文网首页
你不知道的js温习

你不知道的js温习

作者: Vijay_ | 来源:发表于2017-12-26 03:24 被阅读18次
  • js循环双值
for(var i = 0,j = 0;i<5,j<3;i++,j++){console.log(i,j);}
//打印结果0,0;1,1;2,2;
//中间的i<5,j<3;for循环条件语句如果有多个条件,满足一个即可  是做的||判断
  • typeof 妙用,防范机制,不会导致未定义的变量报错 而是返回undefined
console.log(typeof a); //undefined
console.log(b);//ReferenceError: b is not defined
  • 字符串方法 借用数组方法 因为实现很类似 字符串不可变 所以不能借用改变自身方法 如reverse,push,....
```javascript
var a  = "123124";
a = [].map.call(a,function (item,index,arr) {
  return +item*2;
}).join("");
console.log(a);//246248

```
  • Number方法 Number.EPSILON设置机器精度 来判断两个浮点型小数计算后的值
```javascript
function floatNumberIsEqual(num1,num2) {

//获取两个值的绝对值 如果小于机器精度就说明是相等的
return Math.abs(num1 - num2) < Number.EPSILON;
}
console.log(floatNumberIsEqual((0.1+0.2),0.3));
```

  • 数组伪乱序
```javascript
var arr = [1,2,3,4,5];

arr.sort(function (pre,cur) {
return Math.random() - 0.5;
});
console.log(arr);
```

  • 基础类型是值传递,复合类型(对象)是引用传递,搞清楚深拷贝和浅拷贝。考虑vue父子通信时传递对象给子控件,子控件修改该对象的值时父控件的该值也会发生改变,因为引用的是同一对象!

        var obj = {arr:[1,2,3],cc:undefined};
    
    //对json安全的(满足json格式,没有function 和 undefined)对象进行深拷贝
    var jsonStr = JSON.stringify(obj);
    var otherObj = JSON.parse(jsonStr);
    console.log(obj); //{ arr: [ 1, 2, 3 ], cc: undefined }
    console.log(otherObj); //{ arr: [ 1, 2, 3 ] }
    console.log(obj === otherObj); //false
    console.log(obj.arr === otherObj.arr); //false
    
    //对js对象进行浅拷贝(只拷贝值传递的基础类型)
    var assignObj = Object.assign({},obj);
    console.log(assignObj);//{ arr: [ 1, 2, 3 ], cc: undefined }
    console.log(assignObj === obj); // false
    console.log(assignObj.arr === obj.arr); //true
    
    
  • 基本类型的对象类型(如Number,String,...)虽然变量引用的是该对象,但是在操作时会将该值从对象中提取出来进行运算,所以修改基本类型对象引用的值不能达到真正修改引用。
  • 强转Number
    • Number(xxx),+xxx都可以强转
    • 转换Number先调用对象的valueOf方法 如果没返回值则调用toString方法.得到的基础类型返回值再进行number转换
  • 强转String
    • String(xxx),xxx+""
    • 先调用toString如果没有返回值则调用valueOf

看到73页

相关文章

  • 你不知道的js温习

    js循环双值 typeof 妙用,防范机制,不会导致未定义的变量报错 而是返回undefined 字符串方法 借用...

  • 前端知识温习

    js知识点 温习js css知识点 温习css jquery温习 自己实现一个jquery vue框架温习 温习v...

  • 温习js

    scrollWidth,ClientWidth,OffsetWidth差异scrollWidth 容器内容宽度 -...

  • js语言中那些让你抓狂又容易混淆的概念(建议收藏)

    下面罗列的js语言中那些让人抓狂混淆的概念,你遇到过几个? 建议收藏此文,每当要面试的时候提前拿出来温习温习巩固巩...

  • 暑假过半总结及后半段计划

    总结 学习 7.6号开始小组学习,温习闭组前学到的js知识,明确未学习的js知识,7.21号完成js阶段作品,7....

  • 温习了下js知识

    做了个游戏:

  • 温习温习再温习

    今天把以前背过的从头到尾重温了一遍,一共60多首,这两个多月以来不间断背诗的成果。 结果发现由于最近疲于应付这阶段...

  • 温习js中的for,forEach,map, some, eve

    温习一遍原生js中的for,forEach,map, some, every用法总结,及其跳出循环的方法 1.fo...

  • JS原型

    最近一直在理解JS的原型------《你不知道的JS》--------《JS设计模式》 里面都讲JS的原型运作方式...

  • 你不知道的JS

    NaN == NaN; // false "0" == null; // false "0" == undefin...

网友评论

      本文标题:你不知道的js温习

      本文链接:https://www.haomeiwen.com/subject/kqfdgxtx.html