JavaScript与C++

翻译|其它|编辑:郝浩|2007-09-26 10:13:17.000|阅读 867 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

最近研究了下  vc,对比了下  c    js,很多异同,下面列举一下吧

一、c++下面函数声明不用写  function js  必须

二、c++下面函数调用如果在函数声明后,则与  js  一样,但是如果调用在前,声明在后,则必须写原形声明,js  当中不必(不是好习惯,尤其调用在一个  script  里面,声明在后面  script  标记里,很可能出问题,这点还是  c++)

三、c++强类型,有  mem  系列函数操作内存,有  sizeof  一系列内存方法,js  由于弱类型,又是普遍对象化变量,实现非常简单

四、cout  <<很形象<<后面再<<<<很有流的感觉,就象  js  当中.一层处理,再.一层,语言相似处很多

五、c++所有{}都是  scope,比如  if(1){int a=123;}cout<<a;报错,但是  js  里面  if(1){var a=123}alert(a)没问题,因为  js  只支持  function    scope  其他函数内部{}不算  scope

对于  js  不需原形声明的研究

aaa();
function(){
alert(123);
}

正常

aaa();
var www=123;
function(){
alert(this.www);
}

  undefined,为什么呢,原因执行到第一行  aaa  虽然前面没有声明  aaa  函数,但是  js  解释器会向后面找  aaa  函数声明,结果找到了,但是  var www  第二行的代码还没执行,所以  this.www  也就是  window.www  还没有执行,虽然函数可以先调用后声明,变量绝对不可以

var www=123;
aaa();
function(){
alert(this.www);
}

这样就可以了
再有  ie    dom  实现问题
以前看到过一个  context  问题,就是说  ie  下面  $=document.getElementById  这样简化  dom  方法,但是  ff  不可以,我当时就认为是  ff  丢失了  context,所以  $.call(document,"...")就可以了,确实,但是  ie  下这样又不可以了,为什么呢,我  alert($.call)  ff  下有  native code出现,可以  ie  下是  undefined,再写了  javascript:alert(typeof document.getElementById)ie  下面是  object    ff  下面是  function,ie  的实现确实不知道怎么弄的


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:JavaEye

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP