zoukankan      html  css  js  c++  java
  • js的一些有用技巧&字符串、数组操作

    1、保留数字两位小数

    实现一:number.toFixed(2)
    参数:小数点后数字的个数;介于 0 到 20 (包括)之间,实现环境可能支持更大范围。如果忽略该参数,则默认为 0

    该方法不会改变原数值。

    该方法会返回一个数值的字符串表现形式,保留 digits 位小数。

    修改了数据类型:从数字到字符串

    实现二:Math.round()
    Math.round()方法:四舍五入,取得是整数,不能精确小数位。

    保留两位小数先把数据扩大100倍,四舍五入后在缩小100倍即可。

    round() 方法可把一个数字舍入为最接近的整数,不修改数据类型

    console.log(9.02.toFixed(2))
    console.log((8).toFixed(2))
    console.log(Math.round(9.02))
    console.log(Math.round(8))
    console.log(Math.round(9.02*100)/100)
    console.log(Math.round(8.1*100)/100)
    console.log(Math.round(8*100)/100)
    输出结果:

    可知,采用先乘后除可以是Math.round也保留小数,但是对于8.1或者8还是无法保留,这时需要检测结果是否有.再在小数点后补0.

    2、对于函数参数传入为不确定(对象)的情况判断及处理

    一 传入参数为空或者对象
    formatNumber(number, option)
    如上:第二个参数option,可能不传,可能传入一个对象,对象的key 为currency

    那么可以用如下代码判断,先判断option是否有,再判断currency

    if (option && option.currency=== true) {
    二、判断传入参数为null ,''空字符串或者不传入
    if (args&&args.length !== 0) {
    args可以过滤null和Undefined,args.length可以过滤‘’空字符串或者空数组

    js中 0,NaN,'',null,undefined为false

    if([]){}中是会进入{}的.。[]的布尔值是true

    举例:[]==![]为true

    分析:![]是false

    []==false,都转化为数字,那么0==0所以为true

    3、数组扁平化但是只拍平第一层数组

    console.log(flattenArray([[1, 2], [[3, 4], 5]])) //[1, 2, [3, 4], 5]
    实现:用flag来标识,只进入一次扁平化处理

    function flattenArray(array) {
    var res=[];
    array.map(function(item) {
    var flag=true
    if (flag && Array.isArray(item)){
    res = res.concat(item)
    flag = false;
    }else {
    res.push(item)
    }
    })
    return res
    }
    4、将布尔值转化为数字

    使用Boolean类型转换,再写一个+

    5、如何确定上级作用域

    当前函数执行,形成一个私有作用域A,A的上级作用域是谁,和他在哪里执行无关,只和创建定义有关,在哪里创建的,他的上级作用域就是谁

    var a=12;
    function fn(){
    console.log(a);
    }
    function sum(){
    var a=120;
    fn();
    }
    sum(); //a=>20

  • 相关阅读:
    Oracle11gR2导入导出实战之物化视图prebuilt
    Oracle11gr2_ADG管理之switchover补充
    Oracle11gR2--手工建库&dbca建库
    Oracle11gr2_ADG管理之在备库上模拟failover的过程实战
    自己写个验证码类
    隐藏字符 BOM
    jquery与自己写的js文件冲突解决办法
    javaBean
    序列化
    UML
  • 原文地址:https://www.cnblogs.com/helloworld3/p/11192381.html
Copyright © 2011-2022 走看看