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 相关文章推荐
理解Javascript_02_理解undefined和null
Oct 11 Javascript
关于JQuery($.load)事件的用法和分析
Apr 09 Javascript
jQuery过滤选择器:not()方法使用介绍
Apr 20 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
使用JS+plupload直接批量上传图片到又拍云
Dec 01 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
jQuery版AJAX简易封装代码
Sep 14 Javascript
JS定时器实现数值从0到10来回变化
Dec 09 Javascript
Node.js 使用jade模板引擎的示例
May 11 Javascript
原生JS实现简单的倒计时功能示例
Aug 30 Javascript
环形加载进度条封装(Vue插件版和原生js版)
Dec 04 Javascript
基于Element封装一个表格组件tableList的使用方法
Jun 29 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
Android AsyncTack 异步任务实例详解
2016/11/02 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
Javascript拓展String方法小结
2013/07/08 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
vue2.0中set添加属性后视图不能更新的解决办法
2019/02/22 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
JavaScript 继承 封装 多态实现及原理详解
2019/07/29 Javascript
vue使用prop可以渲染但是打印台报错的解决方式
2019/11/13 Javascript
Python中的匿名函数使用简介
2015/04/27 Python
Python的多态性实例分析
2015/07/07 Python
Python基于生成器迭代实现的八皇后问题示例
2018/05/23 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
SELENIUM自动化模拟键盘快捷键操作实现解析
2019/10/28 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
pandas dataframe 中的explode函数用法详解
2020/05/18 Python
深入解析HTML5 Canvas控制图形矩阵变换的方法
2016/03/24 HTML / CSS
酒店管理求职信
2014/06/09 职场文书
禁毒宣传标语
2014/06/19 职场文书
三严三实对照检查材料
2014/08/25 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
教师年度个人总结
2015/02/11 职场文书
2015年电话客服工作总结
2015/05/18 职场文书