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 变量作用域分析
Jul 04 Javascript
javascript中的数字与字符串相加实例分析
Aug 14 Javascript
多种方法判断Javascript对象是否存在
Sep 22 Javascript
javascript动态添加删除tabs标签的方法
Jul 06 Javascript
JavaScript数据结构与算法之栈与队列
Jan 29 Javascript
js实现千分符和保留几位小数的简单实例
Aug 01 Javascript
bootstrap栅格系统示例代码分享
May 22 Javascript
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 jQuery
LayUi中接口传数据成功,表格不显示数据的解决方法
Aug 19 Javascript
如何检查一个对象是否为空
Apr 11 Javascript
VUE 实现动态给对象增加属性,并触发视图更新操作示例
Nov 29 Javascript
微信小程序返回上一页传参并刷新过程解析
Dec 13 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 开发工具
2006/12/06 PHP
php安装swoole扩展的方法
2015/03/19 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
2015/03/19 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
JS 统计时间
2021/03/09 Javascript
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
推荐30个新鲜出炉的精美 jQuery 效果
2012/03/26 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
微信小程序获取用户信息及手机号(后端TP5.0)
2019/09/12 Javascript
Vue的状态管理vuex使用方法详解
2020/02/05 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python中的数学运算操作符使用进阶
2016/06/20 Python
Django开发中的日志输出的方法
2018/07/02 Python
python中多层嵌套列表的拆分方法
2018/07/02 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python实现矩阵打印
2019/03/02 Python
python验证身份证信息实例代码
2019/05/06 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
Python安装依赖(包)模块方法详解
2020/02/14 Python
linux 下selenium chrome使用详解
2020/04/02 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
解决HTML5中滚动到底部的事件问题
2019/08/22 HTML / CSS
环卫工人先进事迹材料
2014/06/02 职场文书
2016党校学习心得体会
2016/01/07 职场文书
入党申请书怎么写?
2019/06/21 职场文书
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL