js 学习笔记(三)

一种面向对象语言需要向开发者提供四种基本能力:
(1) 封装——把相关的信息(无论数据或方法)存储在对象中的能力。
(2) 聚集——把一个对象存储在另一个对象内的能力。
(3) 继承——由另一个类(或多个类)得来类的属性和方法的能力。
(4) 多态——编写能以多种方法运行的函数或方法的能力。

对象的类型

1.本地对象
①Array类
②Date类
2.内置对象
3.宿主对象

Array类
toString()方法和valueOf()方法,返回特殊的字符串。该字符串是通过对每项调用toString()方法,然后用逗号把它们连接在一起构成的。例如,对具有项"red"、"green"和"blue"的数组调用toString()方法或valueOf()方法,返回的是字符串"red,green,blue"。
join()方法唯一的用途就是连接字符串值。join()方法只有一个参数,即数组项之间使用的字符串。
split()方法将字符串转换成数组,split()方法只有一个参数,就是被看作数组项之间的分隔符的字符串。如果把空字符串声明为分隔符,那么split()方法返回的数组中的每个项是字符串的字符。
concat()方法处理数组的方式几乎与它处理字符串的方式完全一样。参数将被附加在数组末尾,返回的函数值是新的Array对象(包括原始数组中的项和新的项)。
slice()方法接受一个或两个参数,即要提取的项的起始位置和结束位置。如果只有一个参数,该方法将返回从该位置开始到数组结尾的所有项;如果有两个参数,该方法将返回第一个位置和第二个位置间的所有项,不包括第二个位置处的项。
unshift()方法,它把一个项放在数组的第一个位置,然后把余下的项向下移动一个位置。
reverse()方法颠倒数组项的顺序。
sort()方法将根据数组项的值按升序为它们排序。(注意:只是对字符串代码的排序,数字数组的排序需要另解)
splice()方法最复杂的方法,把数据项插入数组的中部。
1.删除——只需要声明两个参数,就可以从数组中删除任意多个项,这两个参数是要删除的第一个项的位置和要删除的项的个数。例如arr.splice(0,2)将删除数组arr中的前两项。
2.替换而不删除——声明三个参数就可以把数据项插入指定的位置,这三个参数是起始位置、0(要删除的数组项的个数)和要插入的项。此外,还可以用第四个、第五个或更多个参数指定其他要插入的项。例如,arr.splice(2,0,"red", "green")将在位置2处插入"red"和"green"。
3.替换并删除——声明三个参数就可以把数据项插入指定的位置,这三个参数是起始位置、要删除的数组项的个数以及要插入的项。此外,还可以指定要插入的更多的项。要插入的项的个数不必等于删除的项的个数。例如,arr.splice(2,1, "red","green")将删除数组arr中位置2处的项,然后在位置2处插入"red"和"green"。
栈和队列的概念
区别一
栈:后进先出(LIFO)结构,先添加的项先删除,栈中的插入和删除都只发生在栈顶部。

队列:先进先出(FIFO)结构,先添加的项最后删除,元素的插入操作只发生在队列的尾部,而删除操作则发生在队列的头部。
区别二
栈:顶部添加项叫“推入栈”,删除顶部项叫“弹出栈”。

队列:队尾添加项叫“put”或“入队”,队头删除项叫“get”或“出队”。
在Array类中的运用
栈:push()方法用于在Array结尾添加一个或多个项,pop()方法用于删除最后一个数组项(length-1),返回它作为函数值。

队列:push()方法把数据项加入队列(即在数组结尾添加数据项),shift()方法将删除数组中的第一个项,将其作为函数值返回。
Date类
Date类的方法(列在下表中)均用于设置或获取日期值的某部分。















































































































方    法

说    明

toLocaleDateString()

以地点特定的格式显示Date的时间部分

getTime()

返回日期的毫秒表示

setTime(milliseconds)

设置日期的毫秒表示

getFullYear()

返回用四位数字表示的日期的年份(如2004而不只是04)

getUTCFullYear()

返回用四位数字表示的UTC日期的年份

setFullYear(year)

设置日期的年份,参数必须是四位数字的年份值

setUTCFullYear(year)

设置UTC日期的年份,参数必须是四位数字的年份值

getMonth()

返回日期的月份值,由数字0(1月)到11(12月)表示

getUTCMonth()

返回UTC日期的月份值,由数字0(1月)到11(12月)表示

setMonth(month)

设置日期的月份为大于等于0的数字。对于大于11的数字,开始累计年数

setUTCMonth(month)

设置UTC日期的月份为大于等于0的数字。对于大于11的数字,开始累计年数

getDate()

返回该日期该月中的某天

getUTCDate()

返回该UTC日期该月中的某天

setDate(date)

设置该日期该月中的某天

setUTCDate(date)

设置该UTC日期该月中的某天

getDay()

返回该日期为星期几

getUTCDay()

返回该UTC日期为星期几

setDay(day)

设置该日期为星期几

setUTCDay(day)

设置该UTC日期为星期几

getHours()

返回日期中的小时值

getUTCHours()

返回UTC日期中的小时值

setHours(hours)

设置日期中的小时值

setUTCHours(hours)

设置UTC日期中的小时值

getMinutes()

返回日期中的分钟值

getUTCMinutes()

返回UTC日期中的分钟值

setMinutes(minutes)

设置日期中的分钟值

setUTCMinutes(minutes)

设置UTC日期中的分钟值

getSeconds()

返回日期中的秒值

getUTCSeconds ()

返回UTC日期中的秒值

setSeconds (seconds)

设置日期中的秒值

setUTCSeconds (seconds)

设置UTC日期中的秒值

getMilliseconds()

返回日期中的毫秒值。注意,这不是自1970年1月1日以后的毫秒值,而是当前时间中的毫秒值,例如4 :55 :34.20,其中20即为时间的毫秒值

getUTCMilliseconds ()

返回UTC日期中的毫秒值

setMilliseconds (milliseconds)

设置日期中的毫秒值

setUTCMilliseconds (milliseconds)

设置UTC日期中的毫秒值

时间: 2009-12-27

JavaScript学习笔记(三):JavaScript也有入口Main函数

在C和Java中,都有一个程序的入口函数或方法,即main函数或main方法.而在JavaScript中,程序是从JS源文件的头部开始运行的.但是某种意义上,我们仍然可以虚构出一个main函数来作为程序的起点,这样一来不仅可以跟其他语言统一了,而且说不定你会对JS有更深的理解. 1. 实际的入口 当把一个JavaScript文件交给JS引擎执行时,JS引擎就是从上到下逐条执行每条语句的,直到执行完所有代码. 2. 作用域链.全局作用域和全局对象 我们知道,JS中的每个函数在执行时都会产生一个新的

WebGL three.js学习笔记之阴影与实现物体的动画效果

实现物体的旋转.跳动以及场景阴影的开启与优化 本程序将创建一个场景,并实现物体的动画效果 运行的结果如图: 运行结果 完整代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Three.js</title> <script src="../../../Import/three.js

JS学习笔记之贪吃蛇小游戏demo实例详解

本文实例讲述了JS学习笔记之贪吃蛇小游戏demo实例.分享给大家供大家参考,具体如下: 最近跟着视频教程打了一个贪吃蛇, 来记录一下实现思路, 先上代码 静态页 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>贪吃蛇</title> </head> <style> *{ mar

DB2 UDB V8.1管理学习笔记(三)

正在看的db2教程是:DB2 UDB V8.1管理学习笔记(三).强制断开已有连接,停止实例并删除.  $ db2idrop -f instance_name 用于在UNIX下迁移实例. $ db2imigr instance_name 更新实例,用于实例获得一些新的产品选项或修订包的访问权. $ db2iupdt instance_name 获取当前所处的实例. $ db2 get instance 当更新实例级别或数据库级别的参数后,有些可以立即生效,有些需要重新启动实例才可生效.immed

vue.js学习笔记之绑定style样式和class列表

数据绑定一个常见需求是操作元素的 class 列表和它的内联样式.因为它们都是 attribute,我们可以用 v-bind 处理它们:只需要计算出表达式最终的字符串.不过,字符串拼接麻烦又易错.因此,在 v-bind 用于 class 和 style 时,Vue.js 专门增强了它.表达式的结果类型除了字符串之外,还可以是对象或数组. 一.绑定Class属性. 绑定数据用v-bind:命令,简写成: 语法:<div v-bind:class="{ active: isActive }&q

Bootstrap3学习笔记(三)之表格

在上篇文章给大家介绍了 BootStrap3学习笔记(一)之网格系统      Bootstrap3学习笔记(二)之排版 只需要在table标签上使用.table类,就可以使用bootstrap默认的表格样式 如果需要行背景有交替变化,可以这样设定: 复制代码 代码如下: <table class="table table-striped"> 如果需要边框,可以这样设定: 复制代码 代码如下: <table class="table table-border

vue.js学习笔记之v-bind和v-on解析

v-bind 指令用于响应地更新 HTML 特性 形式如:v-bind:href    缩写为    :href; v-on 指令用于监听DOM事件 形式如:v-on:click  缩写为 @click; <body> <div id="test"> <img v-bind:src="src"> <a v-bind:href="url" rel="external nofollow"

WebGL学习教程之Three.js学习笔记(第一篇)

webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的一个JavaScript绑定,WebGL可以为HTML5 Canvas提供硬件3D加速渲染. WebGL技术标准免去了开发网页专用渲染插件的麻烦,可被用于创建具有复杂3D结构的网站页面,甚至可以用来设计3D网页游戏. 原生的WebGl比较复杂,主要通过对顶点着色器和片元着色器的操作,来实现渲染,但实现起来比较复杂,需要一定的数学基础,但更多的是需要学习

JS学习笔记之数组去重实现方法小结

本文实例讲述了JS学习笔记之数组去重实现方法.分享给大家供大家参考,具体如下: 操作的数组 let arr=[0,1,23,'1',4,2,8,5,5,6,9,'asdasd','5'] 1. 利用ES6 的set 来进行数组去重 console.time("set") let type1=new Set(arr) console.log(type1) type1=[...type1] console.log(type1) console.timeEnd("set"

JS学习笔记之闭包小案例分析

本文实例讲述了JS学习笔记之闭包小案例.分享给大家供大家参考,具体如下: 直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <style type="text/css"> *{ list-style