• 每日记载内容总结25


    1.部分js知识:(来源:http://kb.cnblogs.com/page/187757/)

    (1)replace方法的标志位:字符串的 replace 方法并不会 替换所有匹配的子串——而仅仅替换第一次匹配。

    var str = "David is an Arsenal fan, which means David is great";  
    str.replace("David", "Darren"); // "Darren is an Arsenal fan, which means David is great"  

    这里可以使用正则表达式,并且需要加上一个全局标志位(/g)来实现:

     var str = "David is an Arsenal fan, which means David is great";  
     str.replace(/David/g, "Darren"); // "Darren is an Arsenal fan, which means Darren is great"  

    另一个基本的逻辑错误就是在大小写不敏感的校验场合(字母可大写可小写)没有忽略大小写,此时 /i 标志位就很实用:

     var str = "David is an Arsenal fan, which means David is great";  
    str.replace(/david/gi, "Darren"); // "Darren is an Arsenal fan, which means Darren is great"

    (2)数组的sort方法功能强大:

    简单应用:

     [1, 3, 9, 2].sort();
        // 返回 [1, 2, 3, 9]

    更强大的方法:

     [  
            { name: "Robin Van PurseStrings", age: 30 },  
            { name: "Theo Walcott", age: 24 },  
            { name: "Bacary Sagna", age: 28  }  
        ].sort(function(obj1, obj2) { 
            // 实现增序排列:前者的 age 小于后者  
            return obj1.age - obj2.age;  
        });  
            // Returns:    
            // [  
            //    { name: "Theo Walcott", age: 24 },  
            //    { name: "Bacary Sagna", age: 28  },  
            //    { name: "Robin Van PurseStrings", age: 30 }  
        // ]  

    不仅可以对简单类型的数组项进行排序,可以通过属性来排序对象。对json数据的排序,可用试下

    (3)JavaScript的传对象知识传引用,对数组操作时,要区分创建新对象还是清空数组

    var myArray = yourArray = [1, 2, 3];  
     myArray = []; // `yourArray` 仍然是 [1, 2, 3]  
    // 正确的方法是保持引用  
    myArray.length = 0;  // `yourArray` 和 `myArray`(以及其它所有对这个数组的引用)都变成 [ ] 了  

    (4)使用push来整合数组:简单的原生方法就可以实现数组合并这样的常见任务

     var mergeTo = [4,5,6];  
     var mergeFrom = [7,8,9];        
     Array.prototype.push.apply(mergeTo, mergeFrom);        
     mergeTo; // is: [4, 5, 6, 7, 8, 9]  

    (5)preventDefault() 方法阻止元素发生默认的行为(例如,当点击提交按钮时阻止对表单的提交)。

    event.preventDefault()  event 必需。规定阻止哪个事件的默认动作。这个 event 参数来自事件绑定函数.

    event.preventDefault()
    该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意 阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没 有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。

    event.stopPropagation()
    该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意,虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。

    event是DOM的事件方法,所以不是单独使用,比如指定DOM

    2.各种小问题,各种细节:

    (1)java设置时间的时区为格林尼治时间(输出结果与pc的时间相差8小时)

    Date date = new Date(System.currentTimeMillis());
    SimpleDateFormat   matter1=new   SimpleDateFormat( "   'time ':yyyy-MM-dd  HH:mm:ss   z"); 
    matter1.setTimeZone(TimeZone.getTimeZone("GMT"));
    System.out.println("currentDate : "+matter1.format(date));

    (2)Arrays.copyOf 可用复制数组(两个参数:第一个是要复制的数组,第二个是新数组的长度)

    String value = "aaa ccc bbb ddd";
    String[] valueCut = value.split(" ");
    String[] valueAll = new String[valueCut.length+1];
    valueAll  = Arrays.copyOf(valueCut,valueCut.length+1);
    System.out.println(valueAll.length);
    valueAll[valueCut.length] = value ;
    for (int i = 0; i < valueAll.length; i++) {
        System.out.println(valueAll[i]);
    }
    //输出:
    5
    aaa
    ccc
    bbb
    ddd
    aaa ccc bbb ddd

    (3)实现原比例放缩(适合图片放大缩小处理)

    package test;
    
    import java.math.BigDecimal;
    import java.math.MathContext;
    import java.math.RoundingMode;
    
    public class Testbli {
        public static BigDecimal  resultWidth  ;
        public static BigDecimal  resultHeight ;
        public static void getbili(BigDecimal  width ,BigDecimal  height , BigDecimal  targetWidth ,BigDecimal  targetHeight){
            MathContext mc = new MathContext(5, RoundingMode.HALF_UP);//四舍五入
            BigDecimal scale1 = width.divide(height,mc);
            BigDecimal scale2 = targetWidth.divide(targetHeight,mc) ;
                if (scale1.compareTo(scale2) == 1) {
                    resultWidth = targetWidth ;
                    resultHeight = targetWidth.multiply(height).divide(width,mc);
                }else {
                    resultHeight = targetHeight ;
                    resultWidth = targetHeight.multiply(width).divide(height,mc) ;
                }
                BigDecimal result1 = resultWidth.divide(resultHeight,mc);
                System.out.println(resultWidth +"---"+ resultHeight);
                System.out.println(result1+"---"+scale1);
        }
        public static void main(String[] args) {
            getbili( new BigDecimal(633), new BigDecimal(983), new BigDecimal(200), new BigDecimal(400));
        }
    }
    //输出:
    200---310.58
    0.64396---0.64395//原比例

    (4)得到字符串每个字符的ascll码

    String string = "aa-b";
    for (int i = 0; i < string.length(); i++) {
        int str=string.charAt(i);
        System.out.println(str);
    }

    (5)除法保留任意位小数,且可以取double值和float值

    package test;
    
    import java.math.BigDecimal;
    import java.text.NumberFormat;
    
    public class Testxiaoshu {
         public static void main(String[] args) {
              // 除数
              BigDecimal bd = new BigDecimal(1);
              // 被除数
              BigDecimal bd2 = new BigDecimal(3);
              // 进行除法运算,保留200位小数,末位使用四舍五入方式,返回结果
              BigDecimal result = bd.divide(bd2, 200, BigDecimal.ROUND_HALF_UP);
    
              System.out.println("完整200位小数结果: " + result);
              System.out.println("float           : " + result.floatValue());
              System.out.println("double          : " + result.doubleValue());
    
              // 指定想要的小数位长度取值
              NumberFormat nf = NumberFormat.getNumberInstance();
              nf.setMaximumFractionDigits(20);// 最大小数位
              nf.setMinimumFractionDigits(5); // 最小小数位
              String str = nf.format(result);
              System.out.println("指定位数取值: " + str);
    
             }
    }
    //输出:
    完整200位小数结果: 0.83333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
    float           : 0.8333333
    double          : 0.8333333333333334
    指定位数取值: 0.8333333333
  • 相关阅读:
    JSTL学习总结
    Spring 3 MVC: Create Hello World Application In Spring 3.0 MVC(reprint)
    如何查询端口号被哪个程序占用?
    php 共享内存
    php 消息队列
    php 快速fork出指定个子进程
    批量 kill mysql 中运行时间长的sql
    socket发送http请求
    TCP/IP、Http、Socket的区别
    文本协议和二进制协议
  • 原文地址:https://www.cnblogs.com/cuiyf/p/3442421.html
Copyright © 2020-2023  润新知