Javascript两个感叹号的用法(!!)

varfoo;alert(!foo);//undefind情况下或者null,一个感叹号返回的是true;alert(!goo);//undefind情况下,一个感叹号返回的也是true;但是这里会报undefind的错误varo={flag:true};vartest=!!o.flag;//等效于vartest=o.flag||false;alert(test);//返回truevartest2=!!o.flag1;//当里面没有对象时alert(test2);//返回falsevartest3=!!b.flag;//当连b这个对象都没有时alert(test3);//返回false所以可以发现,!!两个感叹号多用于判断对象的存在。...

Javascript两个等于号和三个等于号的区别(==/===)

==//表示值的比较===//表示对象类型的比较1、对于string,number等基础类型,==和===是有区别的。a)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等。b)同类型比较,直接进行“值”比较,两者结果一样。alert('1'==1);//结果是truealert('1'===1);//结果是false2、对于Array,Object等高级类型,==和===是没有区别的。进行“指针地址”比较。3、基础类型与高级类型,==和===是有区别的。a)对于==,将高级转化为基础类型,进行“值”比较。b)因为类型不同,===结果为false。vara=newString('1');//定义一个string的高级类型varb='1';//定一个基础类型字符串alert(b==a);//为truealert(b===a);//为false参考:https://zhidao.baidu.com/question/56...

Javascript提交表单

<formaction="login.do?act=login"method="post">  <inputtype="submit"name="submit1"value="登陆"></form><formaction="login.do?act=login"name="myform"method="post">  <inputtype="button"name="submit1"value="登陆"onclick="javascript:document.myform.submit();"></form> ...
代码星球 代码星球·2020-04-04

生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)

一、在.NET中生成1、直接用.NETFramework提供的Guid()函数,此种方法使用非常广泛。GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台计算机都不会生成重复的GUID值(即保证所有机器都是唯一的)。关于GUID的介绍在此不作具体熬述,想深入了解可以自行查阅MSDN。代码如下:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){string_guid=GetGuid();Console.WriteLine("唯一码:{0}长度为:{1}去掉连接符:{2}",_guid,_guid.Length,_guid.Replace("-",""));stringuniqueIdString=GuidTo16String();Console.WriteLine("唯一码:{0}长度为:{1}",uniqueI...

Javascript获取div真实高度

第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1.style.width拿不到宽度,而通过#div1.offsetWidth才可以获取到宽度。第二种情况就是宽和高是写在行内中,比如,这中情况通过上述2个方法都能拿到宽度。(什么是行内,就是直接在html标签上写样式)小结,因为id.offsetWidth和id.offsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性。注意如果不是写在行内style中的属性都不能通过id.style.atrr来获取。现在的前端制作很少直接把样式写style里了,都是写在样式表里。如果你要获取的样式没有相对应的(就像#div1.style.width对应#div1.offsetWidth),就只能分别针对不用浏览器来获取样式表的属性了,可以试着搜索“JS获取样式属性”之类的。代码:varo=document.getElementById("view");varh=o.offsetHeight;//高度varw=o.offsetWidth;/...

Javascript最简单的模板引擎

非常简单,性能估计一般,方法最原始。//第一代模板引擎//只支持{{key}}的替换,不支持语句//支持Object和Array对象functiontemplate_setdata(template,data){try{if(!!data&&'[objectArray]'==Object.prototype.toString.call(data)){//数组varout='';for(varobjindata){vartempout=template;for(varkeyindata[obj]){tempout=tempout.replace(/{{(S+)}}/g,function(m,i,j){return(data[obj])[i];});}out+=tempout;}returnout;}elseif(!!data&&'[objectObject]'==Object.prototype.toString.call(data)){//对象for(varkeyindata){template=template.replace(/{{(S+)}}/g,...

JavaScript replace() 方法

参考:http://www.w3school.com.cn/jsref/jsref_replace.asp需要有一点注意的是:可以是函数的形式做为返回值,如下:"test{0}".replace(/{(d+)}/g,function(m,i,j){console.log('m'+m);console.log('i'+i);console.log('j'+j);returnargs[i];});说明:ECMAScriptv3规定,replace()方法的参数replacement可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有0个或多个这样的参数。接下来的参数是一个整数,声明了匹配在stringObject中出现的位置。最后一个参数是stringObject本身。也就是想上面的代码所示,m表示{0},i表示0,j表示4,索引都是从0开始。...
代码星球 代码星球·2020-04-04

Javascript中JSON对象的操作以及遍历key/value

//遍历获取值:functiontext(){varjson={"options":"[{/"text/":/"王家湾/",/"value/":/"9/"},{/"text/":/"李家湾/",/"value/":/"10/"},{/"text/":/"邵家湾/",/"value/":/"13/"}]"}json=eval(json.options)for(vari=0;i<json.length;i++){alert(json[i].text+""+json[i].value)}}vardata=[{name:"a",age:12},{name:"b",age:11},{name:"c",age:13},{name:"d",age:14}];for(varoindata){alert(o);alert(data[o]);alert("text:"+data[o].name+"value:"+data[o].age);}//获取key/valuevarobj={};for(varkinobj){//遍历对象,k即为key,obj[k]为当前k对应的值console.log(k);...

Javascript实现时间转换为多少天前

//实现时间转换,这篇文章发布时间为2016/1/2019:59:30文章发表时间戳为:1453291170000于:11月前functiongetDateDiff(dateTimeStamp){varminute=1000*60;varhour=minute*60;varday=hour*24;varhalfamonth=day*15;varmonth=day*30;varnow=newDate().getTime();vardiffValue=now-dateTimeStamp;if(diffValue<0){return;}varmonthC=diffValue/month;varweekC=diffValue/(7*day);vardayC=diffValue/day;varhourC=diffValue/hour;varminC=diffValue/minute;if(monthC>=1){result=""+parseInt(monthC)+"月前";}elseif(weekC>=1){result=""+parseInt(weekC)+"周前";}els...

Javascript模板引擎插件收集

为什么要用JS的模板引擎,打个比方,如果你要通过接口绑定数据,最终要加进去DOM中,我们普遍的做法就是不断的+,最终append进去,但是这样的做法就是后续人员压根就没法维护。所以这时模板引擎出来了。让每一个人都读懂一套规范的模板语言,使接手的人一看即懂。模板引擎:baiduTemplate(百度)artTemplate(腾讯)juicer(淘宝)doTtmplhandlebarseasyTemplate(Freemarker模板风格)underscoretemplatemustachekissytemplatejTemplatesEJS·laytplJade templating最简单的模板引擎参考:http://blog.csdn.net/wuchengzhi82/article/details/8938122上面已经包含了性能分析等说明。还有一些类似更高级的框架,比如AngularJS等都会带模板引擎,参考移动端JS框架:http://www.cnblogs.com/EasonJim/p/6218966.html...

Javascript动态执行JS(new Function与eval比较)

newFunction与eval可以动态执行JS,只要把拼接好的JS方法,然后以字符串的形式传入到这两个函数,可以执行,其中newFunction用在模板引擎比较多。用Function类直接创建函数的语法如下:varfunction_name=newfunction(arg1,arg2,...,argN,function_body)在上面的形式中,每个 arg 都是一个参数,最后一个参数是函数主体(要执行的代码)。这些参数必须是字符串。比如:functioncallAnotherFunc(fnFunction,vArgument){fnFunction(vArgument);}vardoAdd=newFunction("iNum","alert(iNum+10)");callAnotherFunc(doAdd,10);//输出"20"参考:http://www.jb51.net/article/35642.htmhttp://www.w3school.com.cn/js/pro_js_functions_function_object.asp...

Javascript格式化json返回的时间(/Date(1482747413000)/)

//时间处理,类似/Date(1482747413000)/的形式,得到xxx年xx月xx日11:11:11functionChangeDateFormat(jsondate){jsondate=jsondate.replace("/Date(","").replace(")/","");if(jsondate.indexOf("+")>0){jsondate=jsondate.substring(0,jsondate.indexOf("+"));}elseif(jsondate.indexOf("-")>0){jsondate=jsondate.substring(0,jsondate.indexOf("-"));}vardate=newDate(parseInt(jsondate,10));varmonth=date.getMonth()+1<10?"0"+(date.getMonth()+1):date.getMonth()+1;varcurrentDate=date.getDate()<10?"0"+date.getDate():date.getDate...

Javascript数值转换(string,int,json

数值:在JavaScript中,数值转换一般有三种方式:一、Number(param)函数:param可以用于任何数据类型1.1param是Boolean值,true和false分别转换为1和0;1.2param是数值,只是简单的传入和返回1.3param是null和undefined,分别返回0和NaN1.4param是字符串,遵循下列规则:1.4.1如果字符串中只包含数字,则转换为十进制,前导0被忽略;1.4.2如果字符串中包含有效的浮点数格式,则返回对应的浮点数值,前导0被忽略;1.4.3如果字符串包含有效的十六进制,则返回等大的十进制数值1.4.4如果字符串为空,则返回01.4.5如果字符串中包含除上述格式外的字符,则返回NaN1.5param是对象,则调用valueOf()方法,依照前面的规则转换返回字符串值,若返回NaN,则调用toString()方法,再次依照前面的规则转换返回字符串值。1.6示例:varnum1=Number("hello");//NaNvarnum2=Number("");//0varnum3=Number("00022");//22varnum4=N...

Javascript数组操作(转)

1、数组的创建vararrayObj=newArray(); //创建一个数组vararrayObj=newArray([size]); //创建一个数组并指定长度,注意不是上限,是长度vararrayObj=newArray([element0[,element1[,...[,elementN]]]]); //创建一个数组并赋值要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。2、数组的元素的访问vartestGetArrValue=arrayObj[1];//获取数组的元素值arrayObj[1]="这是新值";//给数组元素赋予新的值 3、数组元素的添加arrayObj.push([item1[item2[...[itemN]]]]);//将一个或多个新元素添加到数组结尾,并返回数组新长度arrayObj.unshift([item1[item2[...[itemN]]]]);//将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度a...
代码星球 代码星球·2020-04-04

javascript创建多行字符串的方法(转)

JS里并没有标准的多行字符串的表示方法,但是在用模板的时候,为了保证模板的可阅读性,我们又不可避免的使用多行字符串,所以出现了各种搞法,这里以一段jade的模板作为示例,简单总结和对比一下。一、字符串相加这是最容易理解也很常用的一种形式,如下vartmpl=''+'!!!5'+'html'+'includeheader'+'body'+'//ifIE6'+'.alert.alert-error'+'center对不起,我们不支持IE6,请升级你的浏览器'+'a(href="http://windows.microsoft.com/zh-CN/internet-explorer/download-ie")|IE8官方下载'+'a(href="https://www.google.com/intl/en/chrome/browser/")|Chrome下载'+'includehead'+'.container'+'.row-fluid'+'.span8'+'blockmain'+'includepagerbar'+'.span4'+'includesidebar'+'includefoot...
首页上一页...416417418419420...下一页尾页