`

JavaScript开发中一些问题(二)

阅读更多

JavaScript开发中一些问题(二)

JavaScript中如果出现换行,将自动添加;号

<script language="JavaScript" type="text/javascript">
 var test = "xxxx
      yyy";
 alert( test );//出现错误
</script>

 
变量test字符串出现换行这个时候浏览器会自动在换行的xxxx后加;
这样变量test实际为 

var test = "xxxx;
      yyy";

所以出现错误

html,JavaScript是从上往下依次编译的
即如果加载时执行些JavaScript脚本,脚本中使用的对象必须是在它之前就已经出现的对象。而非在它以后出现的对象

<script language="JavaScript" type="text/javascript">
//在btn加载前使用
alert( document.getElementById( "btn" ).name );//提示缺少对象
</script>
<input type="button" name="btn" id= "btn" value="测试" />
<script language="JavaScript" type="text/javascript">
//在btn加载后使用
alert( document.getElementById( "btn" ).name );//正确,弹出结果btn
</script>

 
第一调用btn对象时相应的html控件btn并未解释到,所以出错
第二次调用时在btn解释后,这个时候调用能获取相应的对象

JavaScript是按块解释并执行
同一个块中的调用与声明无前后关系
但是不同的块中调用时,调用的块必须在声明的块后面

<script language="JavaScript" type="text/javascript">
   //在testF未声明前调用testF
   testF();//未出错,弹出 我在声明前调用!
   function testF(){
      alert( '我在声明前调用!' );
   }
   testO();//出错,缺少对象
</script>
<script language="JavaScript" type="text/javascript">
 function testO(){
   alert( '我在中间!' );
 }
</script>
<script language="JavaScript" type="text/javascript">
 testO();//我再中间
</script>

 
testF()在未声明前调用并为出错,因为JavaScript是按块解释并执行,即当解释完整个script块时才执行,所以弹出结果而不是出错。
testO()的声明和调用不在同一个script中,当调用的script块执行时,而testO()方法并为编译,所以出错
而最后的testO(),再解释执行它时testO()的声明所在的script块已完成编译所以没有出错

作用域二
JavaScript中只有函数有作用域,而对于if、for、while、switch等块结构是没有作用域的。
//与Java(c++)中的作用域不同,Java(c++)中以{}为作用域的分界点,
注:对于Java语言来说,有一条限制。在Java语言中,即使作用域不同,其定义的变量名字也不能够相同。

str = "我是全局的!";
function testequa(  ){
 var str = "您好";
 do{
   var str = "我在while中!";
 }while( false );
 alert( str );//输出结果为我在while中!
 alert( testStr2(  ) );//我是全局的!
}
function testStr2(  ){
 return str;
}

 
str是个全局变量,因函数有作用域,所以函数testequa再次声明str变量会让全局的str对于函数testequa是不可见(不是覆盖)。
同时因为if、for、while、switch等块结构是没有作用域,do while 中str 会覆盖函数testequa的str变量的值。所以alert( str )输出结果

为"我在while中!"而对于全局的str的值并没有改变所以alert( testStr2(  ) )输出的结果为"我是全局的!"

JavaScript路径
文件外部引入javascript时,javascript的当前路径是引入文件的当前路径,而不是javascript文件的所在路径。

判断某个控件是否存在

//by id没有获取到相应的控件对象是为null
if( document.getElementById( "xxxx" ) == null ){
 //控件不存在时的操作
}

 

动态的调用函数
1:使用eval方法 eval是将字符串作为JavaScript代码执行

function testEvel( ){
    alert( "动态执行!" );
}
eval( "testEvel()" );//弹出结果"动态执行!"
eval( new String( "testEvel()" ) );//没有任何返回

 
注:该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。
推荐不使用该方法 因为使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。

2:使用Function创建,这是用在于控件的事件中,如按钮

<input type="button" name="btn" id= "btn" value="测试" />
<script language="JavaScript" type="text/javascript">
function testEvel( ){
 alert( "动态执行!" );
}
//对象事件绑定函数
document.getElementById( "btn" ).onclick=new Function(" testEvel( )");

 
</script>
3:使用形参的方式传递,详细的实例见JavaScript开发中一些问题(一)

下班,下次再写

2
1
分享到:
评论

相关推荐

    JavaScript开发工具 共享

    在JavaScript开发过程中,一些常用的工具包括: 1. **编辑器**:编辑器是开发的基础,一个好的编辑器可以提供代码提示、自动完成、语法高亮等功能。例如,VS Code(Visual Studio Code)是一款非常流行的免费编辑器...

    JavaScript前端开发案例教程-源代码.rar

    这个名为"JavaScript前端开发案例教程-源代码.rar"的压缩包文件提供了一系列实践案例,帮助开发者深入理解和掌握JavaScript在网页开发中的应用。 首先,JavaScript是一种解释型、弱类型、基于原型的脚本语言,它的...

    JavaScript 程序开发手册

    JavaScript 程序开发手册JavaScript 程序开发手册JavaScript 程序开发手册JavaScript 程序开发手册JavaScript 程序开发手册JavaScript 程序开发手册

    PDF编辑软件:Adobe Acrobat二次开发-二次开发基础概念+安装配置开发环境+使用JavaScript进行基本操作

    PDF编辑软件:Adobe Acrobat二次开发_1.二次开发基础概念.docx PDF编辑软件:Adobe Acrobat二次开发_10.调试和测试二次开发应用.docx PDF编辑软件:Adobe Acrobat二次开发_11.发布和安装自定义应用程序.docx PDF编辑...

    JavaScript设计模式与开发实践.pdf

    "JavaScript设计模式与开发实践....《JavaScript设计模式与开发实践》是JavaScript开发人员不可或缺的指南,它可以帮助读者掌握JavaScript设计模式和开发实践的知识,提高软件的质量和可维护性,并提高自己的职业发展。

    征服RIA:基于JavaScript的Web客户端开发卷二

    如果不打算深究JavaScript幕后机制的话,运用本篇的知识便能胜任一般的JavaScript开发了。JavaScript高级篇:揭示JavaScript的运行机理和高级应用,如面向对象编程、函数式编程和元编程。Ajax篇:Ajax是上帝赐予...

    JavaScript开发技术大全.zip

    7. **ES6及以后的新特性**:包括箭头函数、Promise、let/const、解构赋值、模板字符串、类(class)等,这些都是现代JavaScript开发中常用的新特性。 8. **异步编程**:Promise、async/await的使用,帮助开发者更好...

    javascript开发工具

    在本文中,我们将深入探讨JavaScript开发工具的重要性和它们提供的多种功能。 首先,我们来理解为什么需要JavaScript开发工具。JavaScript是一种广泛应用于Web开发的动态编程语言,它负责网页的交互性和动态效果。...

    Eclipse配置Javascript开发环境图文教程

    首先,我们需要安装Spket插件,Spket是一个为Eclipse提供的JavaScript开发工具包,它提供了代码补全、验证等功能,能够极大提高JavaScript开发的效率。安装Spket的过程这里不再详细说明,一旦安装完成,即可进行后续...

    Javascript开发技术大全源代码

    在“JavaScript开发技术大全”中,你可能还会发现关于DOM遍历和操作、CSS操作、动画效果制作、表单验证、JSON处理、错误处理等方面的示例代码。这些技术可以帮助你构建功能丰富的前端应用。 此外,JavaScript还拥有...

    javascript 网页开发实例教程

    2. 异步编程:学习回调函数、Promise、async/await,解决JavaScript中的异步问题,提高代码可读性。 3. 闭包:深入理解闭包的原理,利用闭包实现模块化、封装变量和保护作用域。 4. DOM操作:掌握通过JavaScript...

    javascript实用开发手册大全

    首先,JavaScript是Web开发中不可或缺的一部分,它是一种脚本语言,主要运行在浏览器环境中,用于实现客户端的交互性和动态功能。JavaScript语法简洁,学习曲线相对平缓,但功能强大,可以处理DOM操作、事件处理、...

    JavaScript前端开发程序设计教程(微课版)-PPT课件.zip

    JavaScript作为Web开发中的重要语言,是前端开发的核心技术之一,尤其在构建动态、交互式的网页应用中发挥着关键作用。本教程《JavaScript前端开发程序设计教程(微课版)》旨在帮助初学者和有一定基础的开发者深入...

    JavaScript设计与开发新思维(英文原版)

    《JavaScript设计与开发新思维》涵盖了单元测试、集成测试和端到端测试的基本概念和方法,推荐了一些流行的JavaScript测试框架,如Jest、Mocha和Chai,以及如何编写测试用例确保代码质量。此外,书中还详细解释了...

    JavaScript 开发手册.CHM

    JavaScript 开发手册 1、JavaScript 基础语法I 2、JavaScript 控制语句 3、JavaSoript HTML DOM对象 4、JavaScript 函数与事件 5、JavaScript 表单及表单事件

    JavaScript开发积分兑换小程序项目源代码.zip

    JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码JavaScript开发积分兑换小程序项目源代码。...

    ARCGIS API for JavaScript 开发文档 完整版

    ARCGIS API for JavaScript 是一款由Esri公司提供的强大地图开发工具,用于构建基于Web的地理信息系统(GIS)应用。这个API允许开发者使用JavaScript语言在网页上创建交互式的地图服务,实现地图的显示、图层操作、...

    JavaScript开发常见问题习题与解答

    适合人群:适用于初学者到具有一定经验的JavaScript开发人员。 使用场景及目标:适用于JavaScript项目开发期间解决问题时查阅;也可做为期末面试的自我检查和能力提升的练习题。学习该文档的目标在于加强基础知识,...

    JavaScript开发项目法律咨询微信小程序源代码.zip

    JavaScript开发项目法律咨询微信小程序源代码,JavaScript开发项目法律咨询微信小程序源代码JavaScript开发项目法律咨询微信小程序源代码JavaScript开发项目法律咨询微信小程序源代码JavaScript开发项目法律咨询微信...

    SuperMap for JavaScript开发教程

    通过《SuperMap for JavaScript开发教程》,开发者不仅能够掌握SuperMap iClient for JavaScript的基本用法,还能深入理解GIS开发的原理和实践,从而在Web GIS领域中游刃有余。无论你是GIS新手还是经验丰富的开发者...

Global site tag (gtag.js) - Google Analytics