1.javascript的数据类型分为两类:原始类型和对象类型。

 原始类型包括字符串、数字、布尔值、null、undefined。

 对象是属性的集合,每个对象都由“名/值”对构成。数组和函数是特殊的对象。

javascript核心定义了三种有用的类:日期类、正则类、错误类。

2.整型直接量:

 16进制直接量以“0x”或“0X”开头,如0xff。

 8进制直接量以“0”开头,如0377。(注:某些javascript的实现不支持八进制,所以最好不使用)

3.javascript中的算术运算:

 Math.round();//四舍五入

 Math.ceil();//向上取整

 Math.floor();//向下取整

4.Infinity表示正无穷大,NaN表示非数字值。

 NaN和任何值都不相等,包括它自己。

 没办法通过x==NaN来判断x是否是数值类型,应当用x!=x来判断。

5.字符串可以接收RegExp参数的方法:

 var text = "testting:1,2,3,4";

 var pattern = /\d+/g;//匹配包含一个或多个数字的实例

 pattern.test(text);//true

 text.search(pattern);//9,首次匹配成功位置

 text.match(pattern);//["1","2","3","4"],所有匹配组成的数组

 text.replace(pattern,"#");//“testting:#,#,#,#”

 text.split(/\D+/);//["","1","2","3","4"]用非数字字符截取字符串

6.会被转换成false的值:null,undefined,0,-0,NaN,"",其他值(包括对象、数组)都会被转换成true。

7.undefined和null:

 undefined表示变量没有初始化,如果要查询对象属性或数组元素的时候返回undefined,则说明这个属性或元素不存在。

 如果函数没有返回任何值,则返回undefined。

 应该用===来区分null和undefined。

 undefined是意料之外的空缺,而null是意料之中的空缺。通常要将他们赋值给变量或属性的时候选择null最佳。

8.包装对象:

 var str = "abc";
 str.len = 4;

 var t = str.len;

 console.log(t);//undefined

 创建了一个临时字符串对象,随即销毁这个对象。所以后面再访问这个对象就不存了。

 var S = new String(s);

 console.log(typeof(s));//String

 console.log(typeof(S));//object

 console.log(s==S);//true

 console.log(s===S);//false

9.不可变的原始值:任何方法都无法修改null、undefined、boolean、字符串、数字。

         并没有办法用来比较它们。

10.可变的对象:它们的值是可修改的。

       即使两个对象包含同样的属性,且属性的值完全相同,它们也不是相等的。

       各个索引元素完全相等的两个数组也不是相等的。

       当且仅当它们引用同一个基对象时,它们才相等:

       var a = [1,2,3];

       var b = a;

       b[0]=1;

       a[0]//1

       a===b//true

       将一个对象显示地赋值给一个变量,仅仅是将对象的引用值赋给了变量,对象本身并没有被复制。

       要想得到一个对象的副本,需要显示地复制对象的每个属性或数组的每个元素:

       var c = ['a','b','c'];

       var d = [];

       for(var i = 0; i < c.length; i++) {

         d[i]=c[i];

       }

       如果我们想比较两个单独的对象或数组,必须比较它们的属性或元素。

11.类型转换:(加粗的地方需要特别注意)

  

12.隐式转换:

  x+""//等价于String(x);

  +x//等价于Number(x);

  !!x//等价于Boolean(x);

13.除了null和undefined之外的任何值都具有toString()方法,这个方法的执行结果通常和String()方法一样。

14.toString()方法可将数字转化成其他进制数,不指定参数默认转成十进制:

  var n = 17;

  n.toString(2);//"10001"

  n.toString(8);//"21"

  n.toString(16);//"11"

15.toFixed()方法根据小数点后的指定位数将数字转化成字符串,并适当地四舍五入或填零:

  var m = 123.234;

  m.toFixed(0);//"123"

  m.toFixed(2);//"123.23"

  m.toFixed(5);//"123.23400"

16.Number()方法将字符串转换成整数或浮点数,但是字符串不能出现非法的尾随字符,此方法基于十进制进行转换。

  parseInt()和parseFloat()是全局方法,会尽可能多地跳过字符串前面的空格,并忽略后面的字符串:

  parseInt("  3 meters");//3

  parseInt("0xff");//255

  parseFloat(".1");//0.1

  parseInt("0.1");//0

  parseIn(".1");//NaN,数字不能以.开头

  parseFloat("$0.1");//NaN,数字不能以$开头

javascript权威指南笔记--javascript语言核心(一)的更多相关文章

  1. javascript权威指南笔记--javascript语言核心(四)

    对象: 通过引用(而非值)来操作对象: var obj = {"x":1,"y":2}; var copyObj = obj; copyObj.x = 5; c ...

  2. javascript权威指南笔记--javascript语言核心(三)

    1.var用来声明一个或多个变量.全局变量是全局对象的属性,它无法通过delete删除. 如果var语句中的变量没有指定初始化表达式,那么这个变量的初始值为undefined. 变量声明语句会被提前到 ...

  3. javascript权威指南笔记--javascript语言核心(二)

    1.函数作用域:在函数内声明的所有变量在函数体内始终是可见的.这意味着在变量声明之前甚至已经可用. *“声明提前”:javascript函数里声明的所有变量(但不涉及赋值)都被提前至函数的顶部. fu ...

  4. javascript权威指南笔记--javascript语言核心(六)

    通过ECMAScript 3创建的属性都是可写的.可枚举的.可配置的. 在ECMAScript 5中,数据属性的4个特性分别是它的值.可写性.可枚举性.可配置性.存取器属性的特性是读取.写入.可枚举性 ...

  5. javascript权威指南笔记--javascript语言核心(五)--getter和setter属性

    getter和setter属性: var p = { x:1.0, y:1.0, get r(){ return Math.sqrt(this.x*this.x + this.y * this.y); ...

  6. 1.语言概述-JavaScript权威指南笔记

    上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...

  7. 2.语言概述-JavaScript权威指南笔记

    上周三的时候交给老板目前的项目第一个迭代回顾会的总结.原本是以综述性的表述方式写的,交给他之后表示程序员不要长篇大论.总结要分为优点缺点期望等等块,每块列出条目,简明扼要的表达出来.这里也用这种风格. ...

  8. javascript权威指南笔记

    最近每天工作之余看下js的细节部分,时间不是很多,所以看的进度也不会太快,写个博客监督自己每天都看下. 以前不知道的细节或者以前知道但是没注意过的地方都会记录下来,所以适合有一定基础的,不适合零基础新 ...

  9. 2.词法结构-JavaScript权威指南笔记

    今天是第二章.所谓词法结构(lexical structure),就是写代码中最基本的东西,变量命名,注释,语句分隔等,这是抄书抄的... 1.字符集,必须是Unicode,反正Unicode是ASC ...

随机推荐

  1. iOS 学习笔记 二 (2015.02.26)

    How To Use Git Source Control with Xcode in iOS 6 If you're new here, you may want to subscribe to m ...

  2. Sublime Text设置快捷键让html文件在浏览器打开

    一.安装View In Browser插件 快捷键 Ctrl+Shift+P(菜单栏Tools->Command Paletter),输入 pcip选中Install Package并回车,输入 ...

  3. Hibernate,JPA注解@OneToMany_Set

    用例代码如下: 数据库DDL语句 1,CAT表 create table CAT ( id CHAR) not null, create_time ), update_time ), cat_name ...

  4. Centos修改镜像为国内的163源

    一.yum 简介    yum,是Yellow dog Updater, Modified 的简称,是杜克大学为了提高RPM 软件包安装性而开发的一种软件包管理器.起初是由yellow dog 这一发 ...

  5. JavaEE基础(二十一)/IO流

    1.IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. 2 ...

  6. C#中一个关于不同窗体间的颜色参数的传递

    1目标是 在弹出菜单中选择颜色,在主菜单中对控件进行操作(弹出菜单选择的颜色就是主菜单控件的颜色) 2颜色属性需要来回转换(也许不用转换,暂时还不会,有会的提醒下,TKS) 3用到一个颜色控件(col ...

  7. POJ 1260:Pearls(DP)

    http://poj.org/problem?id=1260 Pearls Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8 ...

  8. Greenplum failed segment的恢复方法

    [前记] Segment检测及故障切换机制GP Master首先会检测Primary状态,如果Primary不可连通,那么将会检测Mirror状态,Primary/Mirror状态总共有4种:1. P ...

  9. java 判断某一天是当年的哪一天

    题目:输入年份,月份,日,判断这一天是这一年的第几天?(闰年的2月份为29天,平年为28天) public class Runnian { /** * 能被4整除且不能被100整除或者能被400整除的 ...

  10. 表单校验组件ValidForm

    10.1使用入门 1.引入css 请查看下载文件中的style.css,把里面Validform必须部分复制到你的css中 (文件里这个注释 "/*==========以下部分是Validf ...