① 如何精确计算js程序运行时间,进而优化代码
一、 让代码简洁:一些简略的表达方式也会产生很好的优化eg:x=x+1;在不影响功能的情况下可以简写为x++;二、 变量名方法名尽量在不影响语意的情况下简单。(可以选择首字母命名)eg:定义数组的长度可以取名为:ArrLen而不需要取为ArrayLength。三、 关于JS的循环,循环是一种常用的流程控制。JS提供了三种循环:for(;;)、while()、for(in)。在这三种循环中for(in)的效率最差,因为它需要查询Hash键,因此应尽量少用for(in)循环,for(;;)、while()循环的性能基本持平。当然,推荐使用for循环,如果循环变量递增或递减,不要单独对循环变量赋值,而应该使用嵌套的++或–运算符。四、 如果需要遍历数组,应该先缓存数组长度,将数组长度放入局部变量中,避免多次查询数组长度。因为我们常常要根据字符串、数组的长度进行循环,而通常这个长度是不变的,比如每次查询a.length,就要额外进行一个操作,而预先把var len=a.length,则就少了一次查询。五、 尽量选用局部变量而不是全局变量。局部变量的访问速度要比全局变量的访问速度更快,因为全局变量其实是window对象的成员,而局部变量是放在函数的栈里的。六、 尽量少使用eval。每次使用eval需要消耗大量时间,这时候使用JS所支持的闭包可以实现函数模板。七、 减少对象查找因为javaScript的解释性,所以a.b.c.d.e,需要进行至少4次查询操作,先检查a再检查a中的b,再检查b中的c,如此往下。所以如果这样的表达式重复出现,只要可能,应该尽量少出现这样的表达式,可以利用局部变量,把它放入一个临时的地方进行查询。八、 字符串连接。如果是追加字符串,最好使用s+=anotherStr操作,而不是要使用s=s+anotherStr。如果要连接多个字符串,应该少使用+=,如s+=a;s+=b;s+=c;应该写成s+=a + b + c;而如果是收集字符串,比如多次对同一个字符串进行+=操作的话,最好使用一个缓存。怎么用呢?使用JavaScript数组来收集,最后使用join方法连接起来,如下var buf = new Array();for(var i = 0; i < 100; i++){ buf.push(i.toString());}var all = buf.join("");九、 类型转换1. 把数字转换成字符串,应用"" + 1,虽然看起来比较丑一点,但事实上这个效率是最高的,性能上来说:("" +) > String() > .toString() > new String() 尽量使用编译时就能使用的内部操作要比运行时使用的用户操作要快。String()属于内部函数,所以速度很快,而.toString()要查询原型中的函数,所以速度逊色一些,new String()用于返回一个精确的副本。2. 浮点数转换成整型,这个更容易出错,很多人喜欢使用parseInt(),其实parseInt()是用于将字符串转换成数字,而不是浮点数和整型之间的转换,我们应该使用Math.floor()或者Math.round()。Math是内部对象,所以Math.floor()其实并没有多少查询方法和调用的时间,速度是最快的。3. 对于自定义的对象,如果定义了toString()方法来进行类型转换的话,推荐显式调用toString(),因为内部的操作在尝试所有可能性之后,会尝试对象的toString()方法尝试能否转化为String,所以直接调用这个方法效率会更高十、 尽量作用JSON格式来创建对象,而不是var obj=new Object()方法。
② 网站运行时间js代码,初始时间精细到秒
function siteTime(){ window.setTimeout("siteTime()", 1000); var seconds = 1000 var minutes = seconds * 60 var hours = minutes * 60 var days = hours * 24 var years = days * 365 var today = new Date() var todayYear = today.getFullYear() var todayMonth = today.getMonth() var todayDate = today.getDate() var todayHour = today.getHours() var todayMinute = today.getMinutes() var todaySecond = today.getSeconds() /* Date.UTC() — 返回date对象距世界标准时间(UTC)1970年1月1日午夜之间的毫秒数(时间戳) year – 作为date对象的年份,为4位年份值 month – 0-11之间的整数,做为date对象的月份 day – 1-31之间的整数,做为date对象的天数 hours – 0(午夜24点)-23之间的整数,做为date对象的小时数 minutes – 0-59之间的整数,做为date对象的分钟数 seconds – 0-59之间的整数,做为date对象的秒数 microseconds – 0-999之间的整数,做为date对象的毫秒数 */ var t1 = Date.UTC(2014,0,14,11,19,00) var t2 = Date.UTC(todayYear,todayMonth,todayDate,todayHour,todayMinute,todaySecond) var diff = t2-t1 var diffYears = Math.floor(diff/years) var diffDays = Math.floor((diff/days)-diffYears*365) var diffHours = Math.floor((diff-(diffYears*365+diffDays)*days)/hours) var diffMinutes = Math.floor((diff-(diffYears*365+diffDays)*days-diffHours*hours)/minutes) var diffSeconds = Math.floor((diff-(diffYears*365+diffDays)*days-diffHours*hours-diffMinutes*minutes)/seconds) document.getElementById("sitetime").innerHTML=" 已运行"+diffYears+" 年 "+diffDays+" 天 "+diffHours+" 小时 "+diffMinutes+" 分钟 "+diffSeconds+" 秒" } siteTime()
③ js怎么把时间转换成年月日时分秒的形式
需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建版html文件,例如:权index.html。
④ 我想用js写一个程序,能够计算出来,整个代码的运行时间,这个怎么写出来呀
代码开始时获得系统时间var date1=new Date();代码结束时获得系统时间var date2=new Date();将时间转成毫秒专然后得到两者属毫秒差var haomiao=date2.getTime()-date1.getTime();然后你将毫秒转成你需要的时间就行。比如多少秒haomiao/1000.多少分 haomiao/(1000*60)以此类推
⑤ javascript怎么调用时间
你好, javascript脚本可以嵌入在内的任意地方,但它何时被调用呢?当浏览器打开HTML文件后,会直接运行不是声明函数的脚本或通过事件调用脚本函数,下面分析这几种情况。 1 浏览器在打开页面时执行脚本 当浏览器打开一个HTML文件时
⑥ 如何在html中加入javascript脚本语言来实现时间的自动更新
Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。ECMAScript"标准制定的网页脚本语言。这个标准由 ECMA 组织发展和维护。ECMA-262 是正式的 JavaScript 标准。这个标准基于 JavaScript (Netscape) 和 JScript (Microsoft)。Netscape (Navigator 2.0) 的 Brendan Eich 发明了这门语言,从 1996 年开始,已经出现在所有的 Netscape 和 Microsoft 浏览器中。ECMA-262 的开发始于 1996 年,在 1997 年 7 月,ECMA 会员大会采纳了它的首个版本。 在 1998 年,该标准成为了国际 ISO 标准 (ISO/IEC 16262)。这个标准仍然处于发展之中。 在 2005年12月,ECMA发布ECMA-357标准(ISO/IEC 22537)出台,主要增加对扩展标记语言XML的有效支持。 目前javascript 的最新版本为4.0。1、运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,–,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位移运算符(|,&,<<,>>,~,^)和字符串运算符(+)。 可能很多人不知道"==="是什么。 在这里,我为大家解释一下,在javascript中,“=="是等同运算符。 等同运算符的比较规则: 当两个运算数的类型不同时:将他们转换成相同的类型, 1)一个数字与一个字符串,字符串转换成数字之后,进行比较。 2)true转换为1、false转换为0,进行比较。 3)一个对象、数组、函数 与 一个数字或字符串,对象、数组、函数转换为原始类型的值,然后进行比较。(先使用valueOf,如果不行就使用toString) 4)其他类型的组合不星等。 想两个运算数类型相同,或转换成相同类型后: 1)2个字符串:同一位置上的字符相等,2个字符串就相同。 2)2个数字:2个数字相同,就相同。如果一个是NaN,或两个都是NaN,则不相同。 3)2个都是true,或者2个都是false,则相同。 4)2个引用的是同一个对象、函数、数组,则他们相等,如果引用的不是同一个对象、函数、数组,则不相同,即使这2个对象、函数、数组可以转换成完全相等的原始值。 5)2个null,或者2个都是未定义的,那么他们相等。 而“===”是全同运算符,全同运算符遵循等同运算符的比较规则,但是它不对运算数进行类型转换,当两个运算数的类型不同时,返回false;只有当两个运算数的类型相同的时候,才遵循等同运算符的比较规则进行比较。 例如:null==undefined 会返回真 , 但是null===undefined 就会返回假!2、表达式 运算符和操作数的组合称为表达式,通常分为四类:赋值表达式、算术表达式、布尔表达式和字符串表达式。3、语句 Javascript程序是由若干语句组成的,语句是编写程序的指令。Javascript提供了完整的基本编程语句,它们是: 赋值语句、switch选择语句、while循环语句、for循环语句、for each循环语句、do while循环语句、break循环中止语句、continue循环中断语句、with语句、try…catch语句、 if语句(if..else,if…else if …)、let语句。4、函数 函数是命名的语句段,这个语句段可以被当作一个整体来引用和执行。使用函数要注意以下几点: 1)函数由关键字function定义(也可由Function构造函数构造); 2)使用function关键字定义的函数在一个作用域内是可以在任意处调用的(包括定义函数的语句前);而用var关键字定义的必须定义后才能被调用; 3)函数名是调用函数时引用的名称,它对大小写是敏感的,调用函数时不可写错函数名; 4)参数表示传递给函数使用或操作的值,它可以是常量,也可以是变量,也可以是函数,在函数内部可以通过arguments对象(arguments对象是一个伪数组,属性callee引用被调用的函数)访问所有参数; 5)return语句用于返回表达式的值。 6)yield语句扔出一个表达式,并且中断函数执行直到下一次调用next。 一般的函数都是以下格式: function myFunction(params){ //执行的语句 } 函数表达式: var myFunction=function(params){ //执行的语句 } var myFunction = function(){ //执行的语句 } myFunction();//调用函数 匿名函数,它常作为参数在其他函数间传递: window.addEventListener('load',function(){ //执行的语句 },false);5、对象 Javascript的一个重要功能就是面向对象的功能,通过基于对象的程序设计,可以用更直观、模块化和可重复使用的方式进行程序开发。 一组包含数据的属性和对属性中包含数据进行操作的方法,称为对象。比如要设定网页的背景颜色,所针对的对象就是document,所用的属性名是bgcolor,如document.bgcolor="blue",就是表示使背景的颜色为蓝色。6、事件 用户与网页交互时产生的操作,称为事件。事件可以由用户引发,也可能是页面发生改变,甚至还有你看不见的事件(如Ajax的交互进度改变)。绝大部分事件都由用户的动作所引发,如:用户按鼠标的按键,就产生click事件,若鼠标的指针在链接上移动,就产生mouseover事件等等。在Javascript中,事件往往与事件处理程序配套使用。 而对事件的处理,W3C的方法是用addEventListener()函数,它有三个参数:事件,引发的函数,是否使用事件捕捉。为了安全性,建议将第三个参数始终设置为false; 传统的方法就是定义元素的on…事件,它就是W3C的方法中的事件参数前加一个“on”。而IE的事件模型使用attachEvent和dettachEvent对事件进行绑定和删除。javascript中事件还分捕获和冒泡两个阶段,但是传统绑定只支持冒泡事件。7、变量 如 var myVariable = "some value"; 变量有它的类型,上例中myVariable的类型为string(字符串) javascript支持的常用类型还有: object:对象 array:数组 number:数; boolean:布尔值,只有true和false两个值,是所有类型中占用内存最少的; null:一个空值,唯一的值是null; undefined:没有定义和赋值的变量 实际上javascript的变量是弱变量类型,你赋值给他的是字符串,他就是String . 是数字他就是整形。是true和false他就是boolean型(注意,不能加引号,不然会被当成字符串处理)。编辑本段特点 能够具有交互性,能够包含更多活跃的元素,就有必要在网页中嵌入其它的技术。如:Javascript、VBScript、Document Object Model(DOM,文档对象模型)、Layers和 Cascading Style Sheets(CSS,层叠样式表),这里主要讲Javascript。那么Javascript是什么东东?Javascript就是适应动态网页制作的需要而诞生的一种新的编程语言,如今越来越广泛地使用于Internet网页制作上。 Javascript是由 Netscape公司开发的一种脚本语言(scripting language),或者称为描述语言。在HTML基础上,使用Javascript可以开发交互式Web网页。Javascript的出现使得网页和用户之间实现了一种实时性的、动态的、交互性的关系,使网页包含更多活跃的元素和更加精彩的内容。 运行用Javascript编写的程序需要能支持Javascript语言的浏览器。Netscape公司 Navigator 3.0以上版本的浏览器都能支持 Javascript程序,微软公司 Internet Explorer 3.0以上版本的浏览器基本上支持Javascript。微软公司还有自己开发的Javascript,称为JScript。 Javascript和Jscript基本上是相同的,只是在一些细节上有出入。 Javascript短小精悍, 又是在客户机上执行的,大大提高了网页的浏览速度和交互能力。 同时它又是专门为制作Web网页而量身定做的一种简单的编程语言。 JavaScript 使网页增加互动性。JavaScript 使有规律地重复的HTML文段简化,减少下载时间。JavaScript 能及时响应用户的操作,对提交表单做即时的检查,无需浪费时间交由 CGI 验证。JavaScript 的特点是无穷无尽的,只要你有创意。编辑本段开发工具 javascript程序是纯文本的,且不需要编译,所以任何纯文本的编辑器都可以编辑javascript文件。在Dreamweaver CS5中不仅有很好的代码高亮,还有较全的代码提示和错误提示,相比其他编辑器来说是十分强大的。 Visual Studio 2008 支持javascript调试,使程序开发起来更加方便。编辑本段使用技巧在网页的用法 Javascript加入网页有两种方法: 1、直接加入HTML文档 这是最常用的方法,大部分含有Javascript的网页都采用这种方法,如: <script type="application/javascript"> <!– document.write("这是Javascript!采用直接插入的方法!"); //-Javascript结束–> </script> 在这个例子中,我们可看到一个新的标签: <script>……</script>,而<script language="Javascript"> 用来告诉浏览器这是用Javascript编写的程序,需要调动相应的解释程序进行解释。(w3c已经建议使用新的标准:<script type="application/javascript">) HTML的注释标签<!–和–>:用来去掉浏览器所不能识别的Javascript源代码的,这对不支持 Javascript 语言的浏览器来说是很有用的。 注意在非xhtml文档中插入script标签时,如果不是引用外部文件,应该在script内加上cdata声明,避免大于和小于运算符引起的浏览器解析错误 //-Javascript结束:双斜杠表示 Javascript的注释部分,即从//开始到行尾的字符都被忽略。 至于程序中所用到的document.write()函数则表示将括号中的文字输出到窗口中去, 这在后面将会详细介绍。 另外一点需要注意的是,<script>……</script>的位置并不是固定的,可以包含在<head>……</head> 或<body>…..</body>中的任何地方。 还有一个更高级版本的嵌入脚本,它使用了HTML中的CDATA语法(Character Data,就是把CDATA中的文本全部当作纯文本处理,除非遇到CDATA的结束) <script language="javascript" type="text/javascript"><!–//–><!CDATA[[//><!– //javascript代码 //–><!]]></script>引用方式 如果已经存在一个Javascript源文件(通常以js为扩展名),则可以采用这种引用的方式,以提高程序代码的利用率。其基本格式如下: <script src=“url” type="text/javascript"></script> 其中的Url就是程序文件的地址。同样的,这样的语句可以放在HTML文档头部或主体的任何部分。 如果要实现“直接插入方式”中所举例子的效果,可以首先创建一个Javascript源代码文件“Script.js”,其内容如下: document.write("这是Javascript!采用直接插入的方法!"); 在网页中可以这样调用程序:<script src="Script.js" type="text/javascript"></script> 。 也可以同时在导入文件时制定javascript的版本,例如:<script src="Script.js" type="text/javascript; version=1.8"></script> 注意:凡是指定了src属性的script标签里的内容都会被忽略.脚本的调试 JavaScript Editor随着用JavaScript编程的深入,你会开始理解那些JavaScript给出的不透明错误信息。一旦你理解了你常犯的一般性错误,你就会很快知道怎样避免它们,这样你写的代码中的错误将越来越少。编程实际上是一种能随着时间不断飞快进步的技术。但是不管变得多么熟练,你仍然要花一些时间调试你的代码。如果你做过家庭作业,或有过JavaScript编程经验,你会知道相当多的时间是花在调试上。这很正常 – 这只是编程者必须做的事之一。实际上,按照大量的研究,程序员平均百分之五十的时间花在解决代码中的错误。 调试的技巧: 根据浏览器的提示信息 选择浏览器是很重要的,不同的浏览器的错误提示都不同,在浏览器中错误信息最容易理解的,能最快找出错误的,就是firefox和opera了。它们都会给出详细的出错原因和行号。 使用调试工具 如果你是Firefox的用户,那么你可以到添加组件的网页中搜索一些用于网页开发的组件 推荐:Firebug 一款非常优秀的组件,可以指出你的脚本中的错误,查看DOM树,查看cookie,ajax通信,并且还有CSS的调试工具,而且也有不少firebug的扩展。 javascript debugger 这是mozilla开发的调试工具,项目代号叫venkman,和gecko的javascript解析器无缝集成,功能非常强大。 清除浏览器缓存 有时浏览器会在网页明明修改过的时候却依然使用缓存里的网页来显示,这时最好强制刷新网页以重新载入数据,如果还不行就清除缓存。 输出变量 如果你使用firebug调试的话,可以很方便地在脚本里用console.log()来输出变量的值,而且幸运的是,firebug还会对你输出的变量进行解析,在控制台里显示一个清晰的变量结构 如果你没有firebug,那么可以用alert代替,不过当有几百个变量输出时,很可能不得不强行关闭浏览器。在网页里专门放置一个调试用的div也是一种不错的解决办法。
⑦ 如何调用js文件
写个js文件 文件名暂定为 a.jsa.js里面的内容如下:function showTime(){ var time = new Date(); alert(time);}写一个html文件 文件名暂定为 b.html(把a.js和b.html放一个文版件夹)b.html里面的内容如下:<html><head><title>time<title/><script src="a.js" type="text/javascript"></script><head><body>点击显示权时间:<input type="button" onclick="showTime()" /><body/><html/>自己运行下试试~
⑧ js怎么让定时器开始就有时间而不是一秒之后
<!><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Document</title></head><body><div></div></body><script>letnum=5;lettimeOut=()=>{document.querySelector("div").innerHTML=num;setInterval(()=>{if(num==0){num=5;}else{num–;}document.querySelector("div").innerHTML=num;},1000)}timeOut()</script></html>
请采纳