javascript中的数据结构
Javascript中的关键字
Javascript的数据结构
Javascript的数据类型有以下几种
摘自一段话:
JavaScript中的数据很简洁的。简单数据只有 undefined, null, boolean, number和string这五种,而复杂数据只有一种,即object。这就好比中国古典的朴素唯物思想,把世界最基本的元素归为金木水火土,其他复杂的物质都是由这五种基本元素组成。
JavaScript中的代码只体现为一种形式,就是function。
注意:不要和Number, String, Object, Function等JavaScript内置函数混淆
任何一个JavaScript的标识、常量、变量和参数都只是unfined, null, bool, number, string, object 和 function类型中的一种,也就typeof返回值表明的类型。除此之外没有其他类型了。
1、undefined
typeof(undefined) 返回也是 undefined。
可以将undefined赋值给任何变量或属性,但并不意味了清除了该变量,反而会因此多了一个属性。
2、null
ypeof(null)返回object,但null并非object,具有null值的变量也并非object
3、bollean
4、number
typeof(NaN)和typeof(Infinity)都返回number
NaN参与任何数值计算的结构都是NaN,而且 NaN != NaN 。
Infinity / Infinity = NaN 。
5、string
6、function
JavaScript的代码就只有function一种形式,function就是函数的类型。请看下面的程序:
function myfunc()
{
alert(”hello”);
};
alert(typeof(myfunc));
这个代码运行之后可以看到typeof(myfunc)返回的是function。以上的函数写法我们称之为“定义式”的,如果我们将其改写成下面的“变量式”的,就更容易理解了:
var myfunc = function ()
{
alert(”hello”);
};
alert(typeof(myfunc));
这里明确定义了一个变量myfunc,它的初始值被赋予了一个function的实体。因此,typeof(myfunc)返回的也是function。其实,这两种函数的写法是等价的,除了一点细微差别,其内部实现完全相同。也就是说,我们写的这些JavaScript函数只是一个命了名的变量而已,其变量类型即为function,变量的值就是我们编写的函数代码体。
7、Object
创建一个没有任何属性的对象:
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);}
};
再看下面的一段代码
<script>
function MyFunc(){};
var anObj = function(){
alert("123")};
MyFunc.call(anObj());
</script>
Javascript中的DOM树

HTML元素为根元素,HEAD 和 BODY为兄弟元素,他们有自己的子元素。HEAD元素有两个子元素,分别为META 和 TITLE,其中前者比较重要,负责着HTML页面的编码方式等信息
BODY下面又包含很多子元素...... 为了更形象的描述这个现象,我们称之为节点树!节点的概念来自于网络理论,自然界中的任何事物都是有原子构成的,原子就是自然界的节点,
当然,原子又可以细分为原子核和核外电子,于是,原子核和核外电子也成为节点,只是更小的节点。
<html>
<div id="myclass">
"hello,world"
</div>
</html>
元素节点
构成DOM树的所有< ++ >元素都是元素节点。例如上面的h1,p,ul等
文本节点
嵌套在元素节点之内的被称为文本节点。例如<div>hello,world</div>中的"hello,world"被成为文本节点
属性节点
上面代码中的"id=myclass"被称为属性节点
并非所有的元素都会有属性,但是所有的属性都会被包含在元素内
下面介绍几个DOM树中几个比较重要的属性对象
childNodes
childNodes可以把一个元素下的所有的元素都给检索出来
nodeType:
元素节点的属性值——1
文本节点的属性值——3
属性节点的属性值——2
nodeValue
文本节点的值,注意我们不能通过搜索到文本节点后调用该属性,而必须通过包含该文本节点的元素节点来进行调用
动态创建HTML
(1) 使用document.write()进行写
(2) innerHtml进行读写
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<script>
function test(){
var html="<p>tell me?</p>";//插入文本
document.body.getElementsByTagName('div')[0].innerHTML=html;
}
</script>
<body onload="test()">
<div>
hello
</div>
<div>
world
</div>
</body>
</html>
(3)DOM提供方法
(3.1) createElement
javascript中的数据结构的更多相关文章
- JavaScript中的数据结构及实战系列
本系列主要是讲解JavaScript中的数据结构及在实际项目中遇到的地方 JavaScript中的数据结构及实战系列(1):队列 JavaScript中的数据结构及实战系列(2):栈
- JavaScript中常见数据结构
数据结构 栈:一种遵从先进后出 (LIFO) 原则的有序集合:新添加的或待删除的元素都保存在栈的末尾,称作栈顶,另一端为栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 队列:与上相反,一种遵循先进 ...
- JavaScript中的数据结构及实战系列(1):队列
开题 张三丰教无忌太极剑法: 还记得吗? 全都记得. 现在呢? 已经忘却了一小半. 啊,已经忘了一大半. 不坏不坏,忘得真快,那么现在呢? 已经全都忘了,忘得干干净净. 好了,你上吧. 长时间写前端代 ...
- JavaScript中的数据结构及实战系列(2):栈
开题: 不冒任何险,什么都不做,什么也不会有,什么也不是. 本文目录 栈介绍: JavaScript实现栈: 栈的应用: 栈介绍: 和队列一样,栈也是一种表结构,但是和队列的"先进先出&qu ...
- Web高级 JavaScript中的数据结构
复杂度分析 大O复杂度表示法 常见的有O(1), O(n), O(logn), O(nlogn) 时间复杂度除了大O表示法外,还有以下情况 最好情况时间复杂度 最坏情况时间复杂度 平均情况时间复杂度 ...
- 在Object-C中学习数据结构与算法之排序算法
笔者在学习数据结构与算法时,尝试着将排序算法以动画的形式呈现出来更加方便理解记忆,本文配合Demo 在Object-C中学习数据结构与算法之排序算法阅读更佳. 目录 选择排序 冒泡排序 插入排序 快速 ...
- 掌握javascript中的最基础数据结构-----数组
这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...
- 前端开发:Javascript中的数组,常用方法解析
前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...
- 在javascript中使用Json
jSON是JavaScript面向对象语法的一个子集.由于JSON是JavaScript的一个子集,因此它可清晰的运用于此语言中. 文本生成json对象,必须在外面加一对括号. js 代码 var m ...
随机推荐
- openstack学习-nove计算节点部署(五)
nova-compute一般运行在计算节点上,通过message Queue接收管理VM的生命周期 nova-compute通过Libvirt管理KVM,通过XenAPI管理Xen等 一.安装Open ...
- ubuntu server 18.04 lts 终端中文显示为乱码的解决方案
.最近安装ubuntu server 18.04 lts版本发现系统自带的终端下无论是编辑中文,还是显示中文均出现乱码,还是老毛病, 今天无意中发现通过ssh,远程访问,在windows中安装开源的p ...
- POJ 1222 熄灯问题【高斯消元】
<题目链接> 题目大意: 有一个5*6的矩阵,每一位是0或者1. 没翻转一位,它的上下左右的数字也为改变.(0变成1,1变成0).要把矩阵中所有的数都变成0.求最少翻转次数的方案,输出矩阵 ...
- UVA 624 CD[【01背包】(输出路径)
<题目链接> 题目大意: 你要录制时间为N的带子,给你一张CD的不同时长的轨道,求总和不大于N的录制顺序 解题分析: 01背包问题,需要注意的是如何将路径输出. 由于dp时是会不断的将前面 ...
- docker使用dockerfile 构建redis镜像
FROM redis WORKDIR /data VOLUME /data EXPOSE RUN echo "success---------success" ENTRYPOINT ...
- 002.HAProxy安装及常见配置
一 HAProxy安装 官方链接:http://www.haproxy.org/ (国内可能无法打开) 下载连接:http://pkgs.fedoraproject.org/repo/pkgs/hap ...
- AeroSpike踩坑手记1:Architecture of a Real Time Operational DBMS论文导读
又开了一个新的坑,笔者工作之后维护着一个 NoSQL 数据库.而笔者维护的数据库正是基于社区版本的 Aerospike打造而来.所以这个踩坑系列的文章属于工作总结型的内容,会将使用开发 Aerospi ...
- 每天刷Web面试题(前10天汇总)
一.算法题部分 1. 如何获取浏览器URL中查询字符串中的参数? function getParamsWithUrl(url) { var args = url.split('?'); ...
- 洛谷.1782.旅行商的背包(背包DP 单调队列)
题目链接(卡常背包) 朴素的多重背包是: \(f[i][j] = \max\{ f[i-1][j-k*v[i]]+k*w[i] \}\),复杂度 \(O(nV*\sum num_i)\) 可以发现求\ ...
- 洛谷P1144 最短路计数(SPFA)
To 洛谷.1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M ...