1-3 JS对象

对象

JS中万物皆对象,如字符串、数字、日期、数组、函数等,也可以自定义对象

创建对象的方法如下:

  1. 先创建实例再定义属性
                person = new Object()
                // 也可以这样写,更简单:person = {}
                person.firstname="Bill";
                person.lastname="Gates";
                person.age=56;
                person.eyecolor="blue";
                
  2. 直接赋值:person = {firstname:"Bill",lastname:"Gates",age:56,eyecolor:"blue"}
  3. 使用对象构造器(类似java中的构造函数)创建实例
            function Person(firstname,lastname,age,eyecolor) {
                this.firstname = firstname;
                this.lastname = lastname;
                this.age = age;
                this.eyecolor = eyecolor;
            }
            var person1 = new Person("艾萨克","牛顿",380,"green");
            
  4. 如果要添加方法,则在构造器中加入this.changeName = changeName;,然后再定义函数方法function changeName(name) { this.firstname = name; }

访问对象的属性可通过objectName.propertyName

访问对象的方法可通过objectName.methodName()

可以通过for in循环将对象的每个属性遍历一次,举例在稍后的"js语句"部分

数字

javaScript 只有一种数字类型,即双精度浮点数,可以带或不带小数点。可通过科学计数法表示极大或极小的数:
var y=123e5; // 12300000
var z=123e-5; // 0.00123

js中数字类型都存储为8个字节的长度,即64位,其中:
第1位: 符号位,0表示正数,1表示负数
第2位到第12位: 储存指数部分
第13位到第64位:储存小数部分(即有效数字)

原文上有一句“JavaScript 中的所有数字都存储为根为 10 的 64 位(8 比特),浮点数。 ”,其中这个10迷惑了我,经一番查找,最终得到一个感觉比较勉强的答案:10代表科学计数法中的底数!

精度范围(10进制):整数最多15位,小数最多17位

如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。

可以通过“new”来声明变量的类型。
var carName = new String;
var x = new Number;
var y = new Boolean;
var cars = new Array;
var person = new Object;

字符串

常用的属性

  1. str.length:获取长度

常用的方法

  1. txt.small();txt.fontsize(16)此类方法通过标签为字符串添加样式,因可用css实现效果,故此处略过
  2. str.indexOf("hello")"hello"在字符串str中第一次匹配的下标,如果不匹配返回-1
  3. str.match("world")"world"在字符串str中如果存在则返回这个字符串,否则返回null
  4. str.replace("Microsoft","W3School")将str字符串中第一次出现的"Microsoft"用"W3School"替代
  5. txt.toUpperCase()将txt字符串中的字符转换为大写

日期

Date():获取当前日期时间

new Date().getTime():从1970年至今过去的毫秒数(注意这里有关键字“new”)

var date = new Date(); date.setFullYear(1985,9,2):设置日期为1985年10月2日(请注意月份从0开始)

这里点击事件中的函数不能直接写成new Date().setFullYear(1985,9,2),否则会返回毫秒数,原因暂不明确;
另外,此种写法导致在html中没有成功用点击事件的匿名函数实现,不知有解否?

new Date().toUTCString():将日期转换成字符串

new Date().getDay():例子请见语句中的switch部分

通过获取当前时分秒,生成一个动态时钟

动态时钟例子中使用了setTimeout(function(){ testClock(thisbtn) },500);
setTimeout中第一个参数是个函数,如果再需要传参就不能像平常一样写在括号里,应该写成一个匿名函数返回目标函数这样传参。

日期可以根据时间先后做大小比较。

数组

数组的定义有四种方法

  1. var arr = new Array();只声明,需要时再赋值
  2. var arr = new Array(5);指定长度
  3. var arr = new Array(elem0,elem1,elem2...);声明的同时赋值
  4. var arr = [elem0,elem1,elem2...];声明的同时赋值,这种我喜欢O(∩_∩)O~

数组的赋值:arr[0]="str1";arr[1]=obj1

数组的访问可通过数组名和下标进行:alert(arr[1])

数组的修改,即对要修改元素重新赋值即可:arr[0]="str2";

逻辑

在js中,如果对象未初始化或者其值为0,-0,null,NaN,"",false,undefined这7种时,其逻辑值为false,其余的逻辑值都为true。

字符串"false"的逻辑值也为true。

可以通过new Boolean(obj)的方法来检查对象obj的逻辑值

算数对象Math

Math.round()可对一个小数进行四舍五入到整数

Math.random()可返回一个0到1之间的随机数,但不包括0

Math.max(num1,num2);Math.min(num1,num2);返回两个数中比较大(小)的一个

JavaScript 提供 8 种可被 Math 对象访问的算数值及使用方法:

  1. 常数 Math.E
  2. 圆周率 Math.PI
  3. 2 的平方根 Math.SQRT2
  4. 1/2 的平方根 Math.SQRT1_2
  5. 2 的自然对数 Math.LN2
  6. 10 的自然对数 Math.LN10
  7. 以 2 为底的 e 的对数 Math.LOG2E
  8. 以 10 为底的 e 的对数 Math.LOG10E

正则表达式

后面专题学习,先跳过