jajaplus / blog

0 stars 0 forks source link

ARTS 第七周(2019.08.12-2019.08.18) #7

Open jajaplus opened 5 years ago

jajaplus commented 5 years ago

算法

https://leetcode-cn.com/explore/interview/card/top-interview-questions-easy/1/array/27/

(涉及到整形的范围-2147483648~2147483647,一旦超出就无法转换成整形;还有push,pop返回的不是一个数组,虽然会改变原数组,却不会返回改变后的数组) 
/**
 * @param {number[]} digits
 * @return {number[]}
 */
var plusOne = function(digits) {
    let index = -1
    for(let time=(digits.length-1);time>-1;time--){
        if(index===-1&&digits[time]!==9){
            index = time
        }
    }
    if(index===-1){
        return [1].concat(digits.map(num=>0))
    }else{
        return digits.map((num,numIndex)=>{
            if(numIndex===index){
                return ++num
            }else if(numIndex<index){
                return num
            }else{ 
                return 0
            }
        })
    }
};

阅读

https://www.freecodecamp.org/news/the-essentials-eslint/

如何避免重复性学习

  1. 学习多语言:每种语言都有它们的优劣性,所以才会存在这么多中语言。学习了解每一种语言可以处理的问题,然后相互弥补不足
  2. 算法和数据结构。可以帮助你减少许多不必要的代码和多余的思考。
  3. 设计模型。经历了时间的考验,适合大多的业务场景。所以尽量复用别人优秀的设计模式。
  4. 需要避免的设计模式:a:定义太多全局变量b:修改对象类的原型,c:使用ducoment.wirte d:把js和css代码潜入到dom里面。
  5. 应用的框架。mvc,mvp。。。他们的共性就是分离了data和view的模块,让它们不相互影响,同时收到中心控制器的统一控制。

    分享(数据类型取值范围和占据空间大小)

    不同类型的数据能够表示的数值范围不同,js代码在转换时,如果转换后的数据超出了数据类型的大小就会出错。 字节(byte):-128~127(2^8) 短型(short):-32768~32767 (2^16) 整型(int):-2147483648~2147483647 (2^32) 长型(long):-9223372036854774808~9223372036854774807(2^64) 浮点型 float和double: float 3.402823e+38 ~ 1.401298e-45(e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方)占用4个字节;double 1.797693e+308~ 4.9000000e-324 占用8个字节 double型比float型存储范围更大,精度更高,所以通常的浮点型的数据在不声明的情况下都是double型的 文本型(char):用于存放字符的数据类型,占用2个字节,采用unicode编码