文档章节

《JavaScript权威指南》笔记(二)

小微
 小微
发布于 2012/08/28 15:03
字数 853
阅读 423
收藏 16

第二篇笔记的内容主要涉及:数据类型转换,函数、对象、数组的创建以及null与undefined的比较。

1. javascript中类型转换的方法

(1)数字-->字符串:

  1. number+" ";
  2. String(number);
  3. number.toString(n);         //n为2代表转为二进制,n为8代表转为八进制,默认是十进制
  4. number.toFixed(n);          //将数字转换为字符串且显示小数点后n位
  5. number.toExponential(n); //使用指数表示法把数字转换为字符串,小数点前1位,小数点后n位
  6. number.toPrecision(n);    //使用指定的有意义的n位来显示一个数字

(2)字符串-->数字:

  1. str-0;
  2. Number(str);
  3. parseInt(str);    //无法转换时返回NaN
  4. parseFloat(str); //无法转换时返回NaN

(3)其他类型-->布尔型:

  1. Boolean(x);
  2. var x_as_boolean = !!x;  //因为!运算符会先把它的运算数转换为一个布尔类型的值,然后再计算求非

2. javascript中的函数定义

在许多语言中,函数都只是语言的语法特性,可以被定义、调用,却不是数据类型。而javascript中的函数是真正的数值,可以被存储在变量、数组和对象中,还可作为参数传递给其他函数。当一个函数赋给某个对象的属性时,它常被当作那个对象的方法来引用。

3. javascript中函数的创建方法

  1. 常规做法:function square(x) { return x*x; }
  2. 函数直接量(lambda函数):
    1. var square = function(x) { return x*x; };                                          //匿名函数
    2. var f = function fact(x) { if(x<=1) return 1; else return x*fact(x-1);}; //指定函数名,用于递归
    3. f[0] = function(x) { return x*x; };                                                    //定义并存储函数到一个数组中
    4. a.sort(function(a,b) { return a-b; });                                //定义函数并将其作为参数传给另一个函数
    5. var tensquared = (function(x) { return x*x; })(10);                           //定义并调用函数
  3. 用构造函数定义:var square = new Function("x", "return x*x");

4. javascript中对象的创建方法

  1. 用构造函数定义:var o = new Object();
  2. 对象直接量:
    1. var point = {x:2.3, y:-1.2};
    2. var empty = {};
    3. var rectangle = { upperLeft: {x:2, y:2}, "lowerRight":{x:(point.x+side), y:point.y} };

5. javascript中数组的创建方法

  1. 用构造函数定义:
    1. var a = new Array(); a[0] = 1.2; a[1] = "js";
    2. var a = new Array(1.2, "js");
    3. var a = new Array(2);  //数组长度为2
  2. 数组直接量:
    1. var a = [1.2, "js"];                  //js是一种非类型语言,所以其数组元素不必具有相同的类型
    2. var empty = [];
    3. var matrix = [[1, 2, 3], [4, 5, 6]];             //嵌套(js不支持多维数组,但数组元素可以是数组)
    4. var base = 1024; var table = [base, base+1]; //变量做数组中的元素
    5. var sparseArray = [1, , , ,5];                          //数组中存放未定义元素

6. null与undefined的区别

(1)null是js的保留字(关键字),undefined则是ECMAScript V3中的全局变量,其初始值为undefined。

(2)null是对象类型的特殊值(“无对象”),它不是有效的对象、数组、数字、字符串和布尔值。

undefined则有三种情形:

  1. 使用了一个并未声明的变量
  2. 使用了一个已经声明但未赋值的变量
  3. 使用了一个并不存在的对象属性

(3)使用==判断时,null和undefined两值相等。要区分它们需要使用===或者typeof。

(4)用var声明的变量,若未赋值则初始值是undefined。

下一篇链接:《JavaScript权威指南》笔记(三)

上一篇链接:《JavaScript权威指南》笔记(一)

© 著作权归作者所有

共有 人打赏支持
小微
粉丝 112
博文 78
码字总数 81696
作品 0
海淀
程序员
加载中

评论(7)

明舞
明舞

引用来自“小微”的评论

引用来自“明※舞”的评论

引用来自“小微”的评论

引用来自“明※舞”的评论

引用来自“小微”的评论

引用来自“明※舞”的评论

我也在看这书,第六版

我看的第五版,不晓得第六版又增加了什么新内容呢?

加了html5 和ajax?

哦,html5学习的时候我看的是《HTML5与CSS3权威指南》和《HTML 5实战》,应该会比js权威指南中讲的更有针对性吧~

恩,应该是,呵呵,你是学前端的啊??呵呵,我是主学java,闲着没事看点javascript的。

嗯,我也是以前学的java,现在对js比较感兴趣~

呵呵,跟我差不多啊,我也是这种感觉。
小微
小微

引用来自“明※舞”的评论

引用来自“小微”的评论

引用来自“明※舞”的评论

引用来自“小微”的评论

引用来自“明※舞”的评论

我也在看这书,第六版

我看的第五版,不晓得第六版又增加了什么新内容呢?

加了html5 和ajax?

哦,html5学习的时候我看的是《HTML5与CSS3权威指南》和《HTML 5实战》,应该会比js权威指南中讲的更有针对性吧~

恩,应该是,呵呵,你是学前端的啊??呵呵,我是主学java,闲着没事看点javascript的。

嗯,我也是以前学的java,现在对js比较感兴趣~
明舞
明舞

引用来自“小微”的评论

引用来自“明※舞”的评论

引用来自“小微”的评论

引用来自“明※舞”的评论

我也在看这书,第六版

我看的第五版,不晓得第六版又增加了什么新内容呢?

加了html5 和ajax?

哦,html5学习的时候我看的是《HTML5与CSS3权威指南》和《HTML 5实战》,应该会比js权威指南中讲的更有针对性吧~

恩,应该是,呵呵,你是学前端的啊??呵呵,我是主学java,闲着没事看点javascript的。
小微
小微

引用来自“明※舞”的评论

引用来自“小微”的评论

引用来自“明※舞”的评论

我也在看这书,第六版

我看的第五版,不晓得第六版又增加了什么新内容呢?

加了html5 和ajax?

哦,html5学习的时候我看的是《HTML5与CSS3权威指南》和《HTML 5实战》,应该会比js权威指南中讲的更有针对性吧~
明舞
明舞

引用来自“小微”的评论

引用来自“明※舞”的评论

我也在看这书,第六版

我看的第五版,不晓得第六版又增加了什么新内容呢?

加了html5 和ajax?
小微
小微

引用来自“明※舞”的评论

我也在看这书,第六版

我看的第五版,不晓得第六版又增加了什么新内容呢?
明舞
明舞
我也在看这书,第六版
《JavaScript权威指南》笔记(四)

第四篇笔记的内容主要涉及:javascript中的各种语句。 1. switch语句: (1)其中的case表达式采用===匹配,而不是==做匹配 (2)习惯上将default标签放在switch主体的结尾,但实际上可以放在...

小微
2012/08/28
0
2
javascript学习笔记之概要

总体以李炎恢老师的javascript视频为主,其视频简要说明了js的核心知识。 参考书籍:javascript权威指南。

风云海滩
2015/01/07
0
0
《JavaScript权威指南》笔记(一)

《JavaScript权威指南》真是名符其实的好书!真遗憾初学JavaScript时没有立即读这本书,甚为遗憾。不过小有经验之后读来更是有如醍醐灌顶一般,许多之前遇到的奇怪问题和读不懂的代码都迎刃而...

小微
2012/08/28
0
1
JavaScript语言精粹学习笔记(一)

《JavaScript语言精粹》相比《JavaScript权威指南》而言,是一本太薄的书了。然而也许正因为小而精,所以难有权威指南那样阅读起来浅显易懂却又醍醐灌顶般的感觉,语言精粹还是略微感觉有些艰...

小微
2012/12/27
0
0
使用JavaScript的history对象来实现页面前进后退(go/back/forward)。

我们都知道JavaScript有history对象,主要是用来记录浏览器窗口的浏览记录。但是,JS脚本是不允许访问到这个记录里面的内容(隐私)。 常见的用法是: history.back();//返回上一页,相当于浏...

zerodeng
2015/02/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

八种排序算法的时间复杂度复杂度

1、稳定性 归并排序、冒泡排序、插入排序。基数排序是稳定的 选择排序、快速排序、希尔排序、堆排序是不稳定的 2、时间复杂度 最基础的四个算法:冒泡、选择、插入、快排中,快排的时间复杂度...

陈刚生
37分钟前
2
0
大数据学习系列 Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

目录 引言 目录 一、环境选择 1,集群机器安装图 2,配置说明 3,下载地址 二、集群的相关配置 1,主机名更改以及主机和IP做相关映射 2,ssh免登录 3,防火墙关闭 4,时间配置 5,快捷键设置...

董黎明
51分钟前
1
1
六元一个的私有博客系统,了解一下?

神说要有光,于是便有了光 写代码的,偶尔都想装点逼,想要自己写点博客。刚开始还能在各大社区写,比如说CSDN,开源中国,博客园什么的。但是越写就会越觉得,那些博客平台都不是自己想要的...

耒耒耒耒耒
56分钟前
1
0
maven环境隔离

一.maven项目环境根据实际情况进行隔离: 开发环境 dev 测试环境 beta 线上环境 prod 二.pom 配置: build节点 <build> <resources> <resource> <directory>src/......

imbiao
57分钟前
1
0
webrtc收包流程源码分析

版本: webrtc M59 收包流程: AsyncUDPSocket::OnReadEvent AllocationSequence::OnReadPacket HandleIncomingPacket UDPPort::OnReadPacket Connection::OnReadPacket P2PTransportChannel......

bill_shen
58分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部