第一个alert执行的,为quot什么意思第二个alert("您确定要预订?");始终不执行?是不是代码哪里有问题?

其他回答(3)
可怜的孩子,被微软的WEBFORM害了.
园豆:1432
/artech/archive//action-result-03.html
收获园豆:5
园豆:10177
这样写就可以了,return Content("&script&alert('" + msg + "');location.href='/Home/Index'&/script&");
收获园豆:5
&&&您需要以后才能回答,未注册用户请先。JavaScript函数为什么会弹窗两次而且都是1?谁能告诉我这个函数的执行过程和顺序啊? fun_百度知道
JavaScript函数为什么会弹窗两次而且都是1?谁能告诉我这个函数的执行过程和顺序啊? fun
alert(this,也就不会弹出1啊.vlaue)JavaScript函数为什么会弹窗两次而且都是1?下面那个alert才会弹出1.value =value?谁能告诉我这个函数的执行过程和顺序啊? function a(value){ } alert(new a(1).value); 第一次执行上面的alert时还没执行到下面的那个怎么会知道参数是1呢
提问者采纳
次是对的啊第一次alert是在new a(1)时,这时1已经传进去了第二次alert是alert(new a(1).value)时,此时 new a(1),在function中执行的
第一次alert时不是没有值吗?第二次才是1啊
function&A(value){&&&&&this.value&=&&&&&alert(this.vlaue);&}&var&a&=&new&A(1);&//&第一次alert,是构造时alert(a.value);&//&第二次alert写成上面的代码,只是吧new A(1)单独写了一遍,跟你的逻辑是一样的吧?第一个alert是你new A的时候调用function才有的,你调用function的时候传了1过去。① 执行alert(new A(1).value)时,要先计算new A(1).value的值;然后alert(计算出来的值);② 要计算new A(1).value的值,需要先得到new A(1)这个对象,然后.value取值;③ new A(1)的时候调用function A(),有了第一次alert,然后返回了new A(1)的值 a;④ 返回第②步,执行a.value,得到1⑤ 返回第①步,把1当作参数传给alert,执行alert(1)。
第一个alert不是function中的吗?这我还是有点迷糊啊
第一个alert是function中的.但是一个function只是定义,是不会执行的,也就不会在网页上弹出提示框;function只有在被调用的时候才会被执行,是在new&A(1)的时候,执行了function&A(1){...}function&A(value){&&&&&this.value&=&&&&&alert(this.vlaue);&}&//&alert(new&A(1).value);&//&把这行注释掉就一个alert也没了,function定义中的alert是不会执行的,它只是个定义
哦 这样啊,但是执行functionA(1){……}为什么会弹出两次alert?能再说一遍吗?谢谢
functionA(1){……}只有一遍alert;第二遍alert是alert(new a(1).value)。
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
来自团队:
其他类似问题
为您推荐:
其他3条回答
3; alert(this.value).value.执行new a(1) .value = 1);执行过程.new a(1)完成实例化:
1.value =value,即this.执行括号中的内容new a(1),这个匿名对象的value为1
2.vlaue).alert(new a(1);这里候会输出this,得到一个匿名对象;输出1来自hidogeralert(new a(1)
为什么先执行new a(1).value而不是先执行第一个alert?
这个问题很简单,优先级的问题,所有语言里是不是
的优先级比没有 &()&
的要高呢,当然是先要把()里面的东西算完了才会执行外面的
这个应该是先new完了,再运行第二个alert。你在new的时候,已经赋值了啊,a(1)里的1就是参数,然后就运行第一个alert.function a(value){ this.value = alert(“1:”+this.vlaue); } alert(&2:&+ new a(1).value);这样先弹出1:1,再弹出2:1 的。------------------前面的function a 只是定义了一个函数a,里面的value 只是个参数,还没有赋值,函数定义了不会自动运行的。后面new a(1)的时候才给value赋值并运行。--------------------应该是this.value不是this.vlaue还以为自己傻了呢返回是1:12:1
不是先执行第一个alert再赋值的吗?
function里面的alert?function a只是定义了这个函数,里面的代码不运行的。除非你是(function a(){....})(); 当然这不是当作函数来用的当然在 new a(1) 的时候,这个时候alert确实运行了,但是此时alert前面有一个this.value=value ,所以弹出来的就是1;---------------也许是我理解你的疑问的不对你想啊,如果是alert(1+2) ;肯定是先1+2=3后,再alert(3) 啊建议看一些基础编程
柳叶刀刀是正确的。
javascript的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁同一段js代码,前面加alert之后就能执行成功,如果去掉alert语句就执行失败,为什么?
[问题点数:20分,结帖人time_is_life]
同一段js代码,前面加alert之后就能执行成功,如果去掉alert语句就执行失败,为什么?
[问题点数:20分,结帖人time_is_life]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2007年6月 Web 开发大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。所谓闭包,值得是词法表示包括不必要计算的变量的函数,也就是说,该函数可以使用函数外定义的变量。顺便提示一下:词法作用域:变量的作用域是在定义时决定而不是执行时决定,也就是说词法作用域取决于源码,通过静态分析就能确定,因此词法作用域也叫做静态作用域。
with和eval除外,所以只能说JS的作用域机制非常接近词法作用域(Lexical scope)。 下面是一个简单的使用全局变量的闭包实例:1&var&sWord="Hello,Welcome&to&web前端开发工程师的博客,请多多指教。"2&function&disWord(){3&&&&&alert(sWord);4&}5&disWord();解析:脚本载入到内存的时候,disWord并没有计算sWord的值,而是函数disWord调用的时候执行了sWord的计算。下面是函数中定义另一个函数的闭包实例:1&var&iNum=10;2&function&add(num1,num2){3&&&&&function&doAdd(){return&num1+num2+iN}4&&&&&return&doAdd();5&}解析:内部函数doAdd是个闭包,它将获取传入参数num1,num2和全局变量iNum的值,doAdd不接受参数,add最后一步调用doAdd,请两个参数和全局变量求和返回,可以看得出doAdd使用的值是在执行环境中获得的。&下面是在网上找的几个例子,理解词法作用域和闭包&1、案例一
1&&/*全局(window)域下的一段代码*/2&function&a(i)&{3&&&&&var&i;4&&&&&alert(i);5&};6&a(10);& 疑问:上面的代码会输出什么呢?答案:10。具体执行过程a 函数有一个形参 i,调用 a 函数时传入实参 10,形参 i=10
接着定义一个同名的局部变量 i,未赋值
alert 输出 10 思考:局部变量 i 和形参 i 是同一个存储空间吗?
&1&&/*全局(window)域下的一段代码*/&2&function&a(i)&{&3&&&&&alert(i);&4&&&&&alert(arguments[0]);&//arguments[0]应该就是形参&i&5&&&&&var&i&=&2;&6&&&&&alert(i);&7&&&&&alert(arguments[0]);&8&};&9&a(10);& 疑问:上面的代码又会输出什么呢?答案:10,10,2,2具体执行过程 函数有一个形参i,调用 a 函数时传入实参 10,形参 i=10
第一个 alert 把形参 i 的值 10 输出
第二个 alert 把 arguments[0] 输出,应该也是 i
接着定义个局部变量 i 并赋值为2,这时候局部变量 i=2
第三个 alert 就把局部变量 i 的值 2 输出
第四个alert再次把 argumentsa[0] 输出
思考:这里能说明局部变量 i 和形参 i 的值相同吗?
3、案例三 1&/*全局(window)域下的一段代码*/2&function&a(i)&{3&&&&&var&i&=&i;4&&&&&alert(i);5&};6&a(10) 疑问:上面的代码又又会输出什么呢?答案:10具体执行过程 第一句声明一个与形参 i 同名的局部变量 i,根据结果我们知道,后一个 i 是指向了
形参 i,所以这里就等于把形参 i 的值 10 赋了局部变量 i
第二个 alert 当然就输出 10
思考:结合案列二,这里基本能说明局部变量 i 和形参 i 指向了同一个存储地址!
1&/*全局(window)域下的一段代码*/2&var&i=10;3&function&a()&{4&&&&&alert(i);5&&&&&var&i&=&2;6&&&&&alert(i);7&};8&a();& 疑问:上面的代码又会输出什么呢?答案:undefined,
2具体执行过程 第一个alert输出undefined
第二个alert输出 2
思考:到底怎么回事儿?
看到上面的几个例子,你可能会想到底是怎么执行的呢?执行的细节又是怎么样的呢? JS 引擎的工作方式是怎样的呢?解析过程 1、执行顺序&&&& 编译型语言,编译步骤分为:词法分析、语法分析、语义检查、代码优化和字节生成。
&&& 解释型语言,通过词法分析和语法分析得到语法分析树后,就可以开始解释执行了。这里是一个简单原始的关于解析过程的原理,仅作为参考,详细的解析过程(各种JS引擎还有不同)还需要更深一步的研究 &&& javascript的执行过程,如果一个文档流中包含多个script代码段(用script标签分隔的js代码或引入的js文件),它们的运行顺序是:
步骤1. 读入第一个代码段(js执行引擎并非一行一行地执行程序,而是一段一段地分析执行的)
步骤2. 做词法分析和语法分析,有错则报语法错误(比如括号不匹配等),并跳转到步骤5
步骤3. 对【var】变量和【function】定义做“预解析“(永远不会报错的,因为只解析正确的声明)
步骤4. 执行代码段,有错则报错(比如变量未定义)
步骤5. 如果还有下一个代码段,则读入下一个代码段,重复步骤2
步骤6. 结束
2、特殊说明&&& 全局域(window)域下所有JS代码可以被看成是一个“匿名方法“,它会被自动执行,而此“匿名方法“内的其它方法则是在被显示调用的时候才被执行3、关键步骤&&& 上面的过程,我们主要是分成两个阶段 解析:就是通过语法分析和预解析构造合法的语法分析树。
执行:执行具体的某个function,JS引擎在执行每个函数实例时,都会创建一个执行环境(ExecutionContext)和活动对象(activeObject)(它们属于宿主对象,与函数实例的生命周期保持一致)
&在这里有更详细的实例分析资料:/web/a/9.shtml&
阅读(...) 评论()

我要回帖

更多关于 quot什么意思 的文章

 

随机推荐