2017.11.27 JS变量声明标识符、浮点值运算、 数组、Try catch、.NET几种弹出框方法

第一组: 杨昊 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);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 早起,晚上不瞌睡早上起不来也是要命了,外加下雨天,在床上发呆,担心去公司要背书,各种墨迹打算迟到,最终到公司还很早...
    w尺素寸心阅读 1,293评论 0 0
  • 曾经沧海难为水,除却巫山不是云;取次花丛懒回顾,半缘修道半缘君
    帅气的荣幸阅读 832评论 0 0
  • 染指流沙,回绕不尽的世间繁华;青灯孤伴,镌刻不完的午夜落花;锦帛残卷,撰写不到的城南旧事;蓦然回首,消逝不见的绝美...
    弄野阅读 3,899评论 0 1
  • “我写作,不是为了名声,也不是为了特定的读者,我写作是为了光阴流逝使我心安。”——博尔赫斯 我为什么写作?王小波说...
    紫蒲溪溪主阅读 2,394评论 5 10
  • 闺密在若干年前去爱尔兰半工半读,后来结识了同是故乡人的南京小伙。于是在那买房生娃定居爱尔兰都博林。 因着这...
    雪中红围巾阅读 1,443评论 0 0