C++到js
2013-10-18 20:55
162 查看
[TOC]
JavaScript 是一个脚本语言,只需要一个一个良好的浏览器即可运行,比如Google Chrome
本文所有样例均基于Chrome
打开任意编辑器,输入以下内容
保存为任意HelloWorld.html 打开,应该能看到弹出窗口
当然,alert函数弹出窗口并不便于调试,推荐使用console.log函数 这样的HelloWorld代码为
保存,打开,右键单击"审查元素"或按
大量的JavaScript代码可以放在外部的.js文件中 我们的HelloWo可以这样写
同目录下的helloworld.js的内容为
今后我们默认
JavaScript是一门弱类型的语言,看起来类型不同的变量也能够进行运算 下面是一个a+b的样例
运行,应该能看到输出10
注意: 我们并没有用var定义变量c,但是c已经被隐式定义了,这样定义的变量是全局变量,可能声明会出现副作用,建议所有的变量都使用var声明
一个递归求阶乘的函数
结果应该是两个输出,都为120 我们应当注意到,
同C++一样 Javascript 提供了for循环和数组
JavaScript
中的数组
JvaScript是一门很灵活的语言,有很多强大的特性,比如
声明数组时不用指定数组大小,可以直接使用任意的下标访问数组,当然,相应位置可能没有值
同一个数组中的元素没有必要是同一个类型的,比如arr[1]=3.1415926,arr[2]="孙建波"诸如此类都是可以的
数组下标可以是字符串,类似于C++ STL 中的Map 我们可以这么用arr["Apple"]="Jobs";
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,对于JSON的设计理念,可以自行参考阮一峰的数据类型和Json格式
JSON的规则非常简单:
并列的数据之间用逗号(",")分隔。
映射用冒号(":")表示。
并列数据的集合(**数组**)用方括号("[]")表示。
映射的集合(**对象**)用大括号("{}")表示。
JSON 是JavaScript 的一部分,我们可以用JSON来描述一个对象,比如一名ACM选手描述:
在Console中可以看到输出的对象的结构
可以注意到,上面的Name 并没有加双引号
里的JSON 是非常灵活的
Hello
World!
准备一个浏览器
JavaScript 是一个脚本语言,只需要一个一个良好的浏览器即可运行,比如Google Chrome本文所有样例均基于Chrome
如何写一个JavaScript
的 HelloWorld
打开任意编辑器,输入以下内容<script> alert("HelloWorld!"); </script>
保存为任意HelloWorld.html 打开,应该能看到弹出窗口
HelloWorld!
当然,alert函数弹出窗口并不便于调试,推荐使用console.log函数 这样的HelloWorld代码为
<script> console.log("HelloWorld!"); </script>
保存,打开,右键单击"审查元素"或按
F12调出开发者工具,单击Console选项卡,应该能够看到输出的"HelloWorld!"
引用外部js文件
大量的JavaScript代码可以放在外部的.js文件中 我们的HelloWo可以这样写<script src="hellloworld.js"></script>
同目录下的helloworld.js的内容为
console.log("HelloWorld!");
今后我们默认
Java
Script基本概念
变量
JavaScript是一门弱类型的语言,看起来类型不同的变量也能够进行运算 下面是一个a+b的样例var a,b; a=3; b=7; c=a+b; console.log(c);
运行,应该能看到输出10
注意: 我们并没有用var定义变量c,但是c已经被隐式定义了,这样定义的变量是全局变量,可能声明会出现副作用,建议所有的变量都使用var声明
函数
一个递归求阶乘的函数function fact(x) { if (x==0) return 1; result=x*fact(x-1); return result; } console.log(fact(5)); console.log(result);
结果应该是两个输出,都为120 我们应当注意到,
console.log(result);输出的result就是fact函数最后一次使用时给result赋值,因为result为隐式全局变量,所以能在里这访问
数组和循环
同C++一样 Javascript 提供了for循环和数组var n=5; var arr=[5,4,3,2,1];//定义数组并初始化,这里使用了JSON方式 for (var i=0;i<n;i++)//for 循环 { console.log(i); arr[i]+=i; } while (--n>=0) console.log(arr[n]);
JavaScript
中的数组
JvaScript是一门很灵活的语言,有很多强大的特性,比如
声明数组时不用指定数组大小,可以直接使用任意的下标访问数组,当然,相应位置可能没有值
同一个数组中的元素没有必要是同一个类型的,比如arr[1]=3.1415926,arr[2]="孙建波"诸如此类都是可以的
数组下标可以是字符串,类似于C++ STL 中的Map 我们可以这么用arr["Apple"]="Jobs";
对象和JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,对于JSON的设计理念,可以自行参考阮一峰的数据类型和Json格式 JSON的规则非常简单:
并列的数据之间用逗号(",")分隔。
映射用冒号(":")表示。
并列数据的集合(**数组**)用方括号("[]")表示。
映射的集合(**对象**)用大括号("{}")表示。
JSON 是JavaScript 的一部分,我们可以用JSON来描述一个对象,比如一名ACM选手描述:
var acmer1={ "ID": "WJMZBMR", Name: "陈立杰", "School": { "HighSchool": "杭州外国语学校", "college": "THU" }, "Achievement": [ "2010年8月,全国青少年信息学竞赛在线赛(NOI2010)全场第二,打败了两名国家队选手。", "2010年11月,全国青少年信息学联赛(NOIP2010)浙江赛区一等奖,380分(满分400分)。", "2011年1月,全国青少年信息学奥林匹克冬令营(WC2011)全场第23名,在非国家集训队选手中排名前列。" ], print:function(){console.log(this);} } acmer1.Birthday="1995年8月1日"; acmer1.print();
在Console中可以看到输出的对象的结构
可以注意到,上面的Name 并没有加双引号
"",Birthday也并不是在声明时定义的,可见JavaScript
里的JSON 是非常灵活的
对象的其他用法
var a,b; console.log(a);//输出undefined a=new Object(); b={};//另一种初始化对象的方法 console.log("a=",a,"b=",b); a.name="Android"; a.language="Java"; a.ver=[1,2,3]; console.log(a);
相关文章推荐
- 从c++看js的那些概念
- 【cocos2d-x从c++到js】10:JS与C++的交互2——JS与C++的“函数重载”问题
- 关于jsb中js与c++的相互调用
- libnode 0.4.0 发布,C++ 语言版的 Node.js
- 在 Node.js 中使用C++
- CEF3开发者系列之JS与C++交互之二
- C++调用本地js
- failed to load c++ bson extension using pure js version
- C++/C#/F#/Java/JS/Lua/Python/Ruby渲染比试
- CDHtmlDialog的基本使用(C++调用JS函数的实现)
- 用C/C++来实现 Node.js 的模块(二)
- 整理github上的一些好的项目(C\C++\Java\PHP\Android\Linux\JS\CSS\iOS)
- EA&UML日拱一卒-0基础学习微信小程序(9)-C++程序员眼中的app.js
- 关于openssl rsa php c++ js 协同加密解密的一些资源链接
- C/C++实现js的split函数功能
- js调用c/c++dll,用字符串/数组作为参数
- 【cocos2d-x从c++到js】16:使用cocos2d-console工具转换脚本为字节码 推荐
- 【cocos2d-x从c++到js】12:回调函数1——按键回调
- node.js调用C++函数的方法示例
- 【cocos2d-x从c++到js】11:JS与C++的交互3——C++和JS类型转换