这次主要说说javascript的类型判断函数typeof和判断构造函数原型instanceof的用法和注意的地方。 typeof 先来说说typeof吧。首先需要注意的是,typeof方法返回一个字符串,来表示数据的类型。typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。它返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回如下几个结果: number,boolean,string,function,object,undefined。我们可以使用 typeof 来获取...
一、类型转换的方法和应该注意的问题:1.转换为布尔型:(1)用两次非运算(!):!!5 ==> true(2)用布尔型的构造函数:new Boolean(5) == > true值转换为布尔类型为false:0,+0,-0,NaN,""(空字符串),undefined,null除上面的值其他值在转换以后为true,需要特别提到的是:"0",new Object(),function(){}2.转换为字符串类型:(1)加上空字符串"":123 + "" = "123"(2)用字符串构造函数:new String(123) = "123".需要特别注意的...
本文就javascript函数定义的常见问题进行了总结。包含了初学者常犯的错误。分享给大家供大家参考。具体总结如下: 1. 函数声明的同时JS引擎还定义了一个与函数名同名的变量,我们在调用这个函数的时候实际上是在使用这个变量,且它可以在函数声明之前调用,例如foo(); //这里实际上是使用了一函数变量 function foo() { alert('hello'); } 2. 函数表达式,此时将匿名函数赋值给了一变量,此变量需在定义后使用,例如foo(); //报错...
有一个文本框,id 为 d,用下面的 js 代码,想让其获得焦点。 document.getElementById("d").focus(); 结果代码在 IE 中不起作用,要让 IE 中也获得焦点,得用类似如下的代码: 代码如下:document.body.onload = function(){ document.getElementById("d").focus(); }
我的答案是,超过两个 else 的 if ,或者是超过两个 case 的 switch 。可是在代码中大量使用 if else 和 switch case 是很正常的事情吧?错!绝大多数分支超过两个的 if else 和 switch case 都不应该以硬编码( hard-coded )的形式出现。 复杂分支从何而来 首先我们要讨论的第一个问题是,为什么遗留代码里面往往有那么多复杂分支。这些复杂分支在代码的首个版本中往往是不存在的,假设做设计的人还是有点经验的话,他应该预见将...
一、异步机制 JavaScript的执行环境是单线程的,单线程的好处是执行环境简单,不用去考虑诸如资源同步,死锁等多线程阻塞式编程等所需要面对的恼人的问题。但带来的坏处是当一个任务执行时间较长时,后面的任务会等待很长时间。在浏览器端就会出现浏览器假死,鼠标无法响应等情况。所以在浏览器端,耗时很长的操作都应该异步执行,避免浏览器失去响应。所谓异步执行,不同于同步执行(程序的执行顺序与任务的排列顺序是一致的、同步...
window.showModalDialog是弹出模式窗口的方法 returnValue是javascript中html的window对象的属性,目的是返回窗口值,当用window.showModalDialog函数打开一个IE的模式窗口(模式窗口知道吧,就是打开后不能操作父窗口,只能等模式窗口关闭时才能操作)时,用于返回窗口的值,下面举个例子: 1、parent.html//father.html function showmodal(){ var ret = window.showModalDialog("child.htm",null,"dialogWidth:350px;dialogHeight:350px...
注:翻译之中有什么不恰当的地方,欢迎大家指正,祝大家双节快乐! 如果不是有特殊需要而去扩展原生对象和原型(prototype)的做法是不好的 代码如下: //不要这样做 Array.prototype.map = function() { // 一些代码 }; 除非这样做是值得的,例如,向一些旧的浏览器中添加一些ECMAScript5中的方法。 在这种情况下,我们一般这样做: 代码如下: if (!Array.prototype.map) { Array.prototype.map = function() { //一些代码 }; }...
本文实例讲述了js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法。分享给大家供大家参考。具体分析如下: 问题描述: 网站中使用了一个js插件,设置innerHTML时,在IE8下报错“未知运行时错误”:-->报错处第三方插件内容…原因: 所设置的innerHTML的对象是一个,是由于的对象包容性的比较低,当浏览器运行这段脚本时,校验出了运行时错误。 解决方法: 将标签替换为标签。 希望本文所述对大家的javascript程序设计有所...
具体步骤: a. 打开Firebug后,启用“脚本”调试,找到引用的脚本文件(或者行内js);b. 在适当的位置加入断点; c. 如果断点已经执行过,则刷新页面,这时脚本就会在断点处中断。如果断点没有执行过,那可以直接执行页面上的动作(例如点击按钮等),然后代码会在断点处中断;d. 观察函数调用栈,观察local变量,也可以进行单步执行,进行调试。 确实非常简单!用Firebug断点调试的优点总结如下:能加断点的行用绿色行号,非常直...
很多朋友说JavaScript的decodeURI函数也可以实现,但有bug所有呢,下面看下下面的函数,经过测试使用暂时没什么问题,我在之前的文章说过,这个和php的urldecode函数根本不是一回事。下面是我根据高人的代码改写的JavaScript版的urldecode函数,参考的链接在开头提到的文章中有,就不一一列举了。和之前的urlencode函数一样,只实现了utf-8版的。 1、urlencode 使用方法: urlencode(str);function urlencode(clearString) {var o...
本文实例讲述了包含中国城市的javascript对象。分享给大家供大家参考。具体如下: 各种苦逼无聊的需求: City2Num[北京]=010 Num2City[010]=北京代码如下: var City2Num = { "北京": "010", "上海": "021", "天津": "022", "重庆": "023", "香港": "852", "邯郸": "0310", "石家庄": "0311", "保定": "0312", "张家口": "0313", "承德": "0314", "唐山": "0315", "廊坊": "0316", "沧州": "0317", "衡水": "0318", "邢台": "0319"...
第十四章 错误处理与调试 1.开启浏览器错误报告 1.1 Internet Explorer □Toos → Internet Option → Anvanced → Display a notification about every script error 1.2 Firefox □Tools → Error Console (Firebug) 1.3 Safari □Edit → Preferences → Advanced → Show develop menu in menubar/Develop → Show Error Console 1.4 Opera □Tools → Advanced → Error Console 1.5 Chrome □Control this page → Developer...
今天早上到现在,一直在搞一个很愚蠢的问题,竟然一直没发现 如果$str=""; $str = "$str-$sno"; 这样下来,$str前面会有个空格,js获取此值后,必须去掉空格 去空格函数rstr=rstr.replace(/(^\s*)|(\s*$)/g,""); 另: 去左空格replace(/(^\s*)/g, ""); 去右空格replace(/(\s*$)/g, ""); 另外,如果进行程序流程的一步一步核对,在if处停下是,一定要同时输出if里面的两个值,进行对比,或者在前面加上#来看是否有空格 总结一下 1、...
在做页面时,如果想做一个链接点击后不做任何事情,或者响应点击而完成其他事情,可以设置其属性 href = "#",但是,这样会有一个问题,就是当页面有滚动条时,点击后会返回到页面顶端,用户体验不好。 目前有如下几种解决办法: 1)点击链接后不做任何事情 代码如下: test test test //使用2个到4个#,见的大多是"####",也有使用"#all"等其他的 2)点击链接后,响应用户自定义的点击事件 代码如下: test 什么问题都解决了,包括浏...