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 相关文章推荐
event.srcElement 用法笔记e.target
Dec 18 Javascript
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
Aug 28 Javascript
jquery 清空file域示例(兼容个浏览器)
Oct 11 Javascript
javascript在IE下trim函数无法使用的解决方法
Sep 12 Javascript
JavaScript中的对象的extensible属性介绍
Dec 30 Javascript
JavaScript用select实现日期控件
Jul 17 Javascript
jquery validate表单验证插件
Sep 06 Javascript
纯JS实现只能输入数字的简单代码
Jun 21 Javascript
JS实现的哈夫曼编码示例【原始版与修改版】
Apr 22 Javascript
VUE实现移动端列表筛选功能
Aug 23 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
Oct 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
PHP 读取文件的正确方法
2009/04/29 PHP
PHP读取CURL模拟登录时生成Cookie文件的方法
2014/11/04 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
关于Sequelize连接查询时inlude中model和association的区别详解
2017/02/27 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
Vue中Axios从远程/后台读取数据
2019/01/21 Javascript
如何使用Javascript中的this关键字
2020/05/28 Javascript
jQuery zTree如何改变指定节点文本样式
2020/10/16 jQuery
[01:09:24]Ti4开幕式
2014/07/19 DOTA
python 文件操作删除某行的实例
2017/09/04 Python
[原创]python爬虫(入门教程、视频教程)
2018/01/08 Python
解决python测试opencv时imread导致的错误问题
2019/01/26 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python实现变声器功能(萝莉音御姐音)
2019/12/05 Python
python+selenium 脚本实现每天自动登记的思路详解
2020/03/11 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
会议接待欢迎词
2014/01/12 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
任命书范本大全
2014/06/06 职场文书
户籍证明模板
2014/09/28 职场文书
2015年校长新年寄语
2014/12/08 职场文书
幼师大班个人总结
2015/02/13 职场文书
辞职信如何写
2015/02/27 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python