Javascript笔记一 js以及json基础使用说明


Posted in Javascript onMay 22, 2010

JavaScript中的代码只体现为一种形式,就是function。

注意:以上单词都是小写的,不要和Number, String, Object, Function等JavaScript内置函数混淆,JavaScript语言是区分大小写。

typeof(null)返回object,但null并非object。

JavaScript的代码就只有function一种形式,function就是函数的类型。函数的写法有“定义式”和“变量式”。

定义式的函数语句会优先执行。函数定义执行完之后,才会按顺序执行其他语句代码,JavaScript是一段段地执行的。

我们来看看下面的代码:

var myfunc = function () 
{ 
alert("hello"); 
}; 
myfunc(); //第一次调用myfunc,输出hello 
myfunc = function () 
{ 
alert("yeah"); 
}; 
myfunc(); //第二次调用myfunc,将输出yeah

这个程序运行的结果告诉我们:在第一次调用函数之后,函数变量又被赋予了新的函数代码体,使得第二次调用该函数时,出现了不同的输出。

好了,我们又来把上面的代码改成定义式的函数形式:

function myfunc () 
{ 
alert("hello"); 
}; 
myfunc(); //这里调用myfunc,输出yeah而不是hello 
function myfunc () 
{ 
alert("yeah"); 
}; 
myfunc(); //这里调用myfunc,当然输出yeah

按理说,两个签名完全相同的函数,在其他编程语言中应该是非法的。但在JavaScript中,这没错。JavaScript执行引擎并非一行一行地分析和执行程序,而是一段一段地分析执行的。在第一次调用myfunc之前,第一个函数语句定义的代码逻辑,已被第二个函数定义语句覆盖了。所以,两次都调用都是执行最后一个函数逻辑了。

创建对象

<script type="text/javascript"> 
function test() { 
var bo = {}; //建立一个对象 
bo.姓名 = "张三"; //对象的一个属性 
bo.年龄 = 18; 
bo.showInfo = function() { alert(bo.姓名 + " " + bo.年龄); }; //对象的一个方法 
alert(bo["姓名"]); //可以将对象当数组以属性名作为下标来访问属性 
bo["showInfo"](); //可以将对象当数组以方法名作为下标来调用方法 
//遍历对象里所有的属性和方法,并输出其类型 
for (var s in bo) { 
alert(s + " 是 " + typeof (bo[s])); 
} 
} 
</script>

JSON为创建对象提供了非常简单的方法,JavaScript Object Notation(缩写JSON),翻译为中文就是“JavaScript对象表示法”。

创建一个没有任何属性的对象:
var o = {};

创建一个对象并设置属性及初始值:
var person = {name: "Angel", age: 18, married: false};

创建一个对象并设置属性和方法:
var speaker = {text: "Hello World", say: function(){alert(this.text)}};

创建一个更复杂的对象,嵌套其他对象和对象数组等:

var company = 
{ 
name: "Microsoft", 
product: "softwares", 
chairman: {name: "Bill Gates", age: 53, Married: true}, 
employees: [{name: "Angel", age: 26, Married: false}, {name: "Hanson", age: 32, Marred: true}], 
readme: function() {document.write(this.name + " product " + this.product);} 
};

JSON的形式就是用大括“{}”号包括起来的项目列表,每一个项目间并用逗号“,”分隔,而项目就是用冒号“:”分隔的属性名和属性值。这是典型的字典表示形式,也再次表明了 JavaScript里的对象就是字典结构。不管多么复杂的对象,都可以被一句JSON代码来创建并赋值。

其实,JSON就是JavaScript对象最好的序列化形式,它比XML更简洁也更省空间。对象可以作为一个JSON形式的字符串,在网络间自由传递和交换信息。而当需要将这个JSON字符串变成一个JavaScript对象时,只需要使用eval函数这个强大的数码转换引擎,就立即能得到一个JavaScript内存对象。正是由于JSON的这种简单朴素的天生丽质,才使得她在AJAX舞台上成为璀璨夺目的明星。

Javascript 相关文章推荐
Prototype String对象 学习
Jul 19 Javascript
轻量级 JS ToolTip提示效果
Jul 20 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
May 06 Javascript
offsetHeight在OnLoad中获取为0的现象
Jul 22 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
Jun 02 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
Jun 16 Javascript
使用vue.js开发时一些注意事项
Apr 27 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
Dec 01 Javascript
jQuery纵向导航菜单效果实现方法
Dec 19 Javascript
React 实现车牌键盘的示例代码
Dec 20 Javascript
深入解读VUE中的异步渲染的实现
Jun 19 Javascript
解决vuex数据页面刷新后初始化操作
Jul 26 Javascript
javascript Array数组对象的扩展函数代码
May 22 #Javascript
javascript 正则替换 replace(regExp, function)用法
May 22 #Javascript
JQuery 文本框使用小结
May 22 #Javascript
基于Asp.net与Javascript控制的日期控件
May 22 #Javascript
jQueryPad 实用的jQuery测试工具(支持IE,chrome,FF)
May 22 #Javascript
用jQuery打造TabPanel效果代码
May 22 #Javascript
Mootools 图片展示插件(lightbox,ImageMenu)收集集合
May 21 #Javascript
You might like
PHP4实际应用经验篇(3)
2006/10/09 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
写出更好的JavaScript程序之undefined篇(中)
2009/11/23 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
基于JQuery的动态删除Table表格的行和列的代码
2011/05/12 Javascript
JS仿iGoogle自定义首页模块拖拽特效的方法
2015/02/13 Javascript
Javascript中的getUTCDay()方法使用详解
2015/06/10 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
js重写方法的简单实现
2016/07/10 Javascript
javascript 秒表计时器实现代码
2017/03/09 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
JavaScript生成指定范围随机数和随机序列的方法
2018/05/05 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
vue实现带复选框的树形菜单
2019/05/27 Javascript
javascript实现简单打字游戏
2019/10/29 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
小程序角标的添加及绑定购物车数量进行实时更新的实现代码
2020/12/07 Javascript
[01:07]DOTA2次级职业联赛 - Fpb战队宣传片
2014/12/01 DOTA
Python连接Redis的基本配置方法
2018/09/13 Python
对python numpy.array插入一行或一列的方法详解
2019/01/29 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python实现对输入的密文加密
2019/03/20 Python
django 实现简单的插入视频
2020/04/07 Python
python 比较字典value的最大值的几种方法
2020/04/17 Python
中专毕业生自荐信
2013/11/16 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
市场营销策划方案
2014/06/11 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
《唯一的听众》教学反思
2016/02/18 职场文书
使用python向MongoDB插入时间字段的操作
2021/05/18 Python
选购到合适的激光打印机
2022/04/21 数码科技