JS 10

1. ***日期API

2. ***Error

1. ***日期API

单位:  FullYear   Month     Date          Day

Hours      Minutes   Seconds    Milliseconds

API: 1. 每个单位都有一个对儿get/set方法

比如: var year=date.getFullYear()//获取单位的值

date.setFullYear(year)//设置单位的值

特殊: Day没有set方法

2. 命名: 年月日星期没有s结尾

时分秒毫秒都有s结尾

3. 取值范围: 只有Date从1~31

不考虑FullYear, 其余都是从0开始,到进制-1结束

Month: 0~11 总比现实中小1, 需要修正

Date: 1~31   不用修正

Day: 0~6      不用修正

Hours: 0~23 不用修正

Minutes/Seconds: 0~59 不用修正

日期计算:

1. 计算两个日期的时间差: 两日期相减,得毫秒数,再换算

2. 对任意单位做加减: 3步:

1. 取分量: var d=date.getDate();

2. 做加减: d+=60

3. 放回去: date.setDate(d);

强调: 所有set方法可自动调整时间进制

其实可简写为: date.setDate(date.getDate()+60)

转字符串:

date.toString() -> 当地时间的完整时间格式

date.toLocaleString() ->当地时间的简化版格式

date.toLocaleDateString() -> 当地时间的日期部分

date.toLocaleTimeString() -> 当地时间的时间部分

date.toGMTString() -> 标准时区的标准时间

作业: 自定义format函数: 2_format.html

2. ***Error

什么是错误(bug): 程序执行过程中遇到的异常中断。

一旦发生错误,程序立刻退出。

什么是错误处理: 即使程序发生错误,也能保证程序不异常中断的一种机制。

如何:

try{

可能发生错误的代码

}catch(err){//仅在发生错误时,才执行

错误处理代码: 1. 提示用户错误信息(String(err))

2. 记录系统日志

}finally{

无论是否发生错误,都必须执行的代码。

比如: 释放资源!

}

err: Error对象: 在错误发生时,自动创建的,保存错误信息的对象。

错误类型6种:

SyntaxError   语法错误

ReferenceError   要使用的变量没找到

TypeError   错误的调用了对象的方法

RangeError  参数范围越界 比如: toFixed(d) 0~20

EvalError   URIError

1. ***错误处理

2. ***Function

*****闭包

1. ***错误处理

只要可以提前预料的错误,都要用if...else...来代替try catch

只有无法提前预料的错误,采用try catch

主动抛出错误:

为什么: 抛出错误通常是为了提醒使用者错误的使用的程序

如何: throw new Error("错误消息")

2. ***Function:

什么是: js中一切函数都是对象

函数对象是专门封装函数定义的对象。

创建: 3种:

1. 声明: function 函数名(参数列表){函数体; return 返回值;}

何时: 只要一段代码被反复使用,都要先定义在一个专门的函数中,再反复调用函数即可——复用

何时使用参数: 只要函数步骤中必须某些数据才能正常执行时,就要定义参数。

何时使用返回值: 如果函数的调用者需要函数的执行结果时,函数就必须返回值。

可被声明提前:

2. 函数直接量:

var  函数名=function(参数列表){函数体; return 返回值;};

不会被声明提前。

****声明提前(hoist): 在开始执行程序前,将所有var声明的变量和function声明的函数提前到*当前作用域*的顶部,集中创建。

赋值留在原地!

何时: 只要不希望被声明提前时。

揭示了: 函数名仅是一个普通的变量

函数定义其实是一个对象

函数名中仅保存了函数对象的地址——引用

3. 用new:

var fun=

new Function("参数1","参数2",...,"函数体; return 返回值")

比如: function compare(a,b){return a-b;}

var compare=function(a,b){return a-b;}

var compare=new Function("a","b","return a-b;");

***重载(overload):

什么是: 相同函数名,不同参数列表的多个函数,在调用时,可根据传入参数的不同,自动选择对应的函数调用!

为什么: 减轻调用者的负担,一个函数名,可执行多种操作

何时: 一项任务,根据不同的参数,执行不同的操作流程时

如何:   js语法不支持重载效果

变通:  所有函数对象内,都自动内建了一个arguments对象

arguments对象:

专门保存传入函数的所有参数值的类数组对象

类数组对象: (object like array)

vs 数组: 相同: 下标, length, for遍历

不同: 类数组对象是Object,不是Array,无法使用Array的API

数组是Array类型,可以使用数组类型所有的API

匿名函数:

什么是: 函数创建时,不被任何变量引用的函数

为什么: 节约内存

何时: 如果一个函数只用一次,用完希望自动释放时

1. 回调callback: 将函数作为参数传递给另一个函数去调用

比如: arr.sort(function (a,b){return a-b});

str.replace(/reg/g,function(kw,$1,...){return ...})

2. 自调: 创建函数后立刻调用自己!

何时: 如果一个函数只执行一次,不会再重用时

为什么: 建立临时作用域!避免全局污染!

如何:

(function(参数列表){函数体; return 返回值})();

时间: 2024-09-15 03:17:02

JS 10的相关文章

js 10秒钟倒计时

第一个: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>counter</title> <script language="javascript" type="text/JavaScript"> function Count

js 10.19

函数 关键词function 复习 Var 是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成. Var可以在内存模块提前(js代码执行前)完成所以有变量提升这个功能. 因为a没有带var,所以不存在变量提升,浏览器会把他当成window的属性. Function也是js的关键字,用于声明和定义函数的,声明和定义都在内存模块完成了. Function 也是内存模块提前完成,所以有函数提升这个功能. 变量提升和函数提升 都叫预解释.都是浏览器的. 2.函数的定义:函数:具

JS - 10大排序算法

/** 冒泡排序(Bubble Sort) **/ function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j+1]) { //相邻元素两两对比 var temp = arr[j+1]; //元素交换 arr[j+1] = arr[j]; arr[j] = temp; }

Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 10.x

运行Reac项目报: 解决方法:进入project根目录,执行rebuild命令 npm rebuild node-sass 原文地址:https://www.cnblogs.com/jerryspace/p/10300076.html

nodejs学习笔记Node.js 调试命令

3.4  调试        47 下面是一个简单的例子: $ node debug debug.js < debugger listening on port 5858 connecting... ok break in /home/byvoid/debug.js:11 var a = 1; 2 var b = 'world'; 3 var c = function (x) { debug> n break in /home/byvoid/debug.js:21 var a = 1; 2 v

基于Flask/RethinkDB/Backbone.js实现TODO List 使用 RethinkDB,Flask 与 Backbone.js 制作一个简单的 todo list。

第1节 技术栈介绍 第2节 RethinkDB 10分钟入门 RethinkDB 10分钟入门 第3节 Backbone.js 10分钟入门 第4节 搭建应用框架 第5节 设计模型与接口 第6节 完成前端部分-大功告成!

[js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)

该系列文章索引: [js高手之路]node js系列课程-创建简易web服务器与文件读写 [js高手之路]node js系列课程-图解express+supervisor+ejs用法 [js高手之路]Node.js实现简易的爬虫-抓取博客所有文章列表信息 [js高手之路]Node.js模板引擎教程-jade速学与实战1-基本用法 [js高手之路]Node.js模板引擎教程-jade速学与实战2-流程控制,转义与非转义 [js高手之路]Node.js模板引擎教程-jade速学与实战3-mixin

10 个最好的移动App开发框架

1. Ionic10 个最好的移动App开发框架 Ionic, a front-end framework, a helps building native-like mobile apps with HTML5, CSS3 and JavaScript. It is not a replacement for PhoneGap or a JavaScript framework but the focus is on the UI interactions and design. The fr

Node.js——Async

一:流程控制 为了适应异步编程,减少回调的嵌套,我尝试了很多库.最终觉得还是async最靠谱. 地址:https://github.com/caolan/async Async的内容分为三部分: 流程控制:简化十种常见流程的处理 集合处理:如何使用异步操作处理集合中的数据 工具类:几个常用的工具类 本文介绍其中最简单最常用的流程控制部分. 由于nodejs是异步编程模型,有一些在同步编程中很容易做到的事情,现在却变得很麻烦.Async的流程控制就是为了简化这些操作. 1. series(task