美文网首页
2017.11.27 JS变量声明标识符、浮点值运算、 数组、

2017.11.27 JS变量声明标识符、浮点值运算、 数组、

作者: 胡諾 | 来源:发表于2017-11-28 08:56 被阅读0次

    第一组: 杨昊 JS中变量声明标识符var,let,const的区别

    1. const定义的变量不可以修改,而且必须初始化。
    1 const b = 2;//正确
    2 // const b;//错误,必须初始化 
    3 console.log('函数外const定义b:' + b);//有输出值
    4 // b = 5;
    5 // console.log('函数外修改const定义b:' + b);//无法输出 
    
    1. var定义的变量可以修改,如果不初始化会输出undefined,不会报错。
    1 var a = 1;
    2 // var a;//不会报错
    3 console.log('函数外var定义a:' + a);//可以输出a=1
    4 function change(){
    5 a = 4;
    6 console.log('函数内var定义a:' + a);//可以输出a=4
    7 } 
    8 change();
    9 console.log('函数调用后var定义a为函数内部修改值:' + a);//可以输出a=4
    
    1. let是块级作用域,函数内部使用let定义后,对函数外部无影响。
    1 let c = 3;
    2 console.log('函数外let定义c:' + c);//输出c=3
    3 function change(){
    4 let c = 6;
    5 console.log('函数内let定义c:' + c);//输出c=6
    6 } 
    7 change();
    8 console.log('函数调用后let定义c不受函数内部定义影响:' + c);//输出c=3
    

    PS:转载自 js中const,var,let区别


    第二组:徐晋 解决浮点值运算bug

    浮点值得精确计算。——JavaScript的浮点值运算,总会存在些奇怪的结果。

    由于有些小数用二进制表示时是无穷的,故有些精确度丢失是无法避免的。

    如:0.2+0.1的的运算结果实际上是:0.30000000000000004

    image.png

    解决方案:通过Math.pow(x,y)函数,返回x的y次幂。

    如果结果是虚数或负数,则该方法将返回 NaN。如果由于指数过大而引起浮点溢出,则该方法将返回 Infinity。

    1.  //加法  
    2.  function FloatAdd(arg1, arg2) {  
    3.      var r1, r2, m;  
    4.      try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }  
    5.      try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }  
    6.      m = Math.pow(10, Math.max(r1, r2));  
    7.      return (arg1 * m + arg2 * m) / m;  
    8.  }  
    
    1.  //减法  
    2.  function FloatSub(arg1, arg2) {  
    3.      var r1, r2, m, n;  
    4.      try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }  
    5.      try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }  
    6.      m = Math.pow(10, Math.max(r1, r2));  
    7.      //动态控制精度长度  
    8.      n = (r1 >= r2) ? r1 : r2;  
    9.      return ((arg1 * m - arg2 * m) / m).toFixed(n);  
    10. }  
    
    1.  //乘法  
    2.  function FloatMul(arg1, arg2) {  
    3.      var m = 0, s1 = arg1.toString(), s2 = arg2.toString();  
    4.      try { m += s1.split(".")[1].length } catch (e) { }  
    5.      try { m += s2.split(".")[1].length } catch (e) { }  
    6.      return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);  
    7.  }  
    
    1.  //除法  
    2.  function FloatDiv(arg1, arg2) {  
    3.      var t1 = 0, t2 = 0, r1, r2;  
    4.      try { t1 = arg1.toString().split(".")[1].length } catch (e) { }  
    5.      try { t2 = arg2.toString().split(".")[1].length } catch (e) { }  
    6.      with (Math) {  
    7.          r1 = Number(arg1.toString().replace(".", ""));  
    8.          r2 = Number(arg2.toString().replace(".", ""));  
    9.          return (r1 / r2) * pow(10, t2 - t1);  
    10.     }  
    11. }  
    

    第三组:黄华英 数组

    1. Intersect 交集,Except 差集,Union 并集

    int[] oldArray = { 1, 2, 3, 4, 5 };
    int[] newArray = { 2, 4, 5, 7, 8, 9 };
    var Intersect = oldArray.Intersect(newArray).ToList();//2,4,5
    var Except1 = oldArray.Except(newArray).ToList();//1,3
    var Except2 = newArray.Except(oldArray).ToList();//7,8,9
    var Union = oldArray.Union(newArray).ToList();//1,2,3,4,5,7,8,9

    2. 方法
    • 数组中判定所有元素都满足条件才执行
      a.every(function(x){return x<10;})当数组中所有元素调用判定函数都返回true它才返回true

    • 数组中至少有一个元素调用判定函数返回true它就返回true
      a.some(function(x){return x<10;})

    • 将数组中所有元素转化为字符串并拼接在一起
      var a=[1,2,3];
      a.join();// “1,2,3”
      a. a.join(“ ”);// “1 2 3”空格作为分隔符
      a.join(“”);//“123”没有分隔符

    • 将数组中的元素颠倒顺序并且是在原数组中实现,并不创建新的数组
      num = 12345678;
      num.reverse();// 87654321

    • 将数组中元素排序并返回排序后的数组
      var a=[33,1111,4,222];
      a.sort();// [1111,222,33,4]默认按字母表的顺序排列
      var b=[‘ant’,’Bug’,’Dog’,’cat’];
      b.sort();// [‘Bug’,’Dog’,’ant’,’cat’]//默认区分大小写排序


    第四组:王芳 Try catch

    1. 用途:try catch 可以捕捉try部分的异常,当你没有try catch的时候,如果出现异常则程序报错,加上try catch,出现异常程序正常运行,只是把错误信息存储到Exception里,所以catch是用来提取异常信息的。Try中写你的正常代码,catch中写异常记录。

    2. 输出:try+两次Tab键。

    3. 写法:

    protected AjaxResult GetTrainCenterPDF(HttpContext context)
    {
        try
        {
            LoongAir.ServiceBll.Service.Handlers.ResultTrainingCenter resultlist = LoongAir.Support.Consumer.QualifiedTrainingInterface.TrainingCenter.GetTrainingCenter();
            result.Data = resultlist.trainCenterList.ToArray();
            result.IsSuccess = true;
        }
        catch (Exception e)
        {
            result.IsSuccess = false;
            //日志记录
            OPLogger.Add(loginUser, "训练中心指南", "msg=" + e.Message + ",statck=" + e.StackTrace, OPLogType.Exception);
        }
        return result;
    }
    

    第五组:姜葳 .NET几种弹出框方法

    1. 点击页面上的按钮,弹出一个对话框提示是“确定”还是“取消”操作,我们采用在按钮中添加属性来完成:
      public System.Web.UI.WebControls.Button btnDelRow;
      btnDelRow.Attributes.Add("onclick", "return confirm('确定要删吗?');");

    2. 点击页面上的按钮,弹出一个对话框提示是“确定”还是“取消”操作,选择“确定”或“取消”后跳转到相应的页面:
      string strMsg, string strUrl_Yes, string strUrl_No;
      Response.Write("<Script Language='JavaScript'>if ( window.confirm('"+strMsg+"')) { window.location.href='" + strUrl_Yes +
      "' } else {window.location.href='"+ strUrl_No +"' };</script>");

    3. 对于页面完成一个操作后,弹出一个对话框提示是否“操作成功”。
      Response.Write("<script>alert('删除成功!')</script>");

    4. 对于页面完成一个操作后,弹出一个对话框提示是否“操作成功”后跳转到某一个页面。
      Response.Write("<script>alert('删除成功!');
      window.location.href ='www.cnblogs.com'</script>");

    5. 允许 ASP.NET 服务器控件在 Page 中发出客户端脚本块:
      public virtual void RegisterStartupScript(string key,string script);

    相关文章

      网友评论

          本文标题:2017.11.27 JS变量声明标识符、浮点值运算、 数组、

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