重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
准确的说:es(ECMAScript)是js(javascript)的标准。
专注于为中小企业提供网站设计、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业洮南免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000多家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
JavaScript是语言,而ECMAScript(即ECMA-262,ECMA是欧洲计算机制造商协会)是为了规范JS而制定的标准,ECMAScript有不同版本,最近的版本是第10版,发布于2019.6。
完整的JavaScript的实现包含以下几个部分:
核心(ECMAScript):由ECMA-262定义并提供核心功能。
文档对象模型(DOM):提供与网页内容交互的方法与接口。
浏览器对象模型(BOM):提供与浏览器交互的方法与接口。
可以用下面这张图进行粗略的记忆
具体来说,ECMA-262定义了一门语言的如下部分
语法
类型
语句
关键字
保留字
操作符
全局对象
ECMA-262第6版,俗称ES6、ES2015或ES Harmony(和谐版),于2015年6月发布。这一版包含了大概这个规范有史以来最重要的一批增强特性。ES6正式支持了类、模块、迭代器、生成器、箭头函数、期约、反射、代理和众多新的数据类型。
DOM Level 1 在1998.10成为W3C的推荐标准。它由DOM Core 和DOM HTML两个部分组成。DOM Core提供了一种映射XML文档,从而方便访问和操作文档任意部分的方式;DOM HTML扩展了前者,并增加了特定于HTML的对象和方法。
DOM Level 2 新增了以下模块,以支持新的接口。
DOM视图:描述追踪文档不同视图(如应用CSS样式前后的文档)的接口。
DOM事件:描述事件及事件处理的接口。
DOM样式:描述处理元素CSS样式的接口。
DOM遍历和范围:描述遍历和操作DOM树的接口。
DOM Level 3 增加了以统一的方式加载和保存文档的方法(包含在一个叫DOM Load and Save的新模块中),还有验证文档的方法(DOM Validation)。
DOM Level 4 新增Mutation Observers,替代 了Mutation Events .
BOM 主要针对浏览器窗口和子窗口(frame),不过人们通常会把任何特定于浏览器的扩展都归在 BOM 的范畴内。 下面就是这样一些扩展。
弹出新浏览器窗口的能力;
移动、缩放和关闭浏览器窗口的能力;
navigator对象,提供关于浏览器的详尽信息;
location对象,提供浏览器加载页面的详尽信息;
screen对象,提供关于用户屏幕分辨率的详尽信息;
performance对象,提供浏览器内存占用、导航行为和时间统计的详尽信息;
对cookie的支持;
其他自定义对象,如XMLHttpRequest和IE的ActiveXObject。
出处:《JavaScript高级程序设计(第4版)》Matt Frisbie著 李松峰译
javascript是一门脚本编程语言。一般至少要学1~2个月,才有效果,也视个人天赋而定。当然也少不了大量练习,要经常自己动手写 特效。要求网上大部分特效,你都能改。然后自己能写一些简单的特效,就算入门了。但要精通的话就得花些时间了,最好参与些项目,很多技巧不通过项目这样比较大的历练是用不上的。千锋软件开发培训课程的授课模式采用全程面授,讲师成本虽高,但是效果却是显著的,和学员面对面沟通,了解到学员在学习过程中遇到的问题,动态地调整授课方式。
千锋教育就有线上免费的软件开发公开课,。
JavaScript是脚本语言,主要用来编写动态网页。建议先从基本的HTML和CSS学起,学学静态页面布局。然后在网上找一些javascript入门级的视频教程,按照教程一步步由浅入深按部就班的学习就OK。
编程一方面靠的是逻辑思维,另一方面也是一个孰能生巧的过程,只要多敲几遍代码,将基础知识融会贯通,肯定能够学好的。千锋教育集团目前已与国内4000多家企业建立人才输送合作,与500多所大学建立实训就业合作,每年为各大企业输送上万名移动开发工程师,每年有数十万名学员受益于千锋教育组织的技术研讨会、技术培训课、网络公开课及免费教学视频。
你这个问题太费劲了,不过终于写好了
===================================================
script language = "javascript"
/**
* 跟据年份和月份返回当前日期的最大天数
*/
function getMonthMaxDay(year, month) {
if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
} else if (month != 2) {
return 31;
} else {
if (year % 4 == 0 || (year % 100 == 0 year % 400 == 0)) {
if (month == 2) {
return 29;
}
} else {
if (month == 2) {
return 28;
}
}
}
return 0;
}
function getNextNumDay(nowDate, dayNum){
var intBeginYear = parseInt(nowDate.substring(0, 4),10);
//从"-"后截取月数
var intBeginMonth = parseInt(nowDate.substring(nowDate.indexOf("-") + 1, nowDate.indexOf("-") + 3),10);
var intBeginDate = parseInt(nowDate.substring(nowDate.lastIndexOf("-") + 1, nowDate.lastIndexOf("-") + 3),10);
var day = new Date(Date.parse(nowDate.replace(/-/g, '/'))); //格式化时间
var week = day.getDay();//获得今天是周几
var restDay = parseInt(dayNum/7,10)*2 + dayNum;
var otherDay = dayNum%7;
if(week == 5)//周5加两天
restDay+=2;
if(week == 6)//周6加一天
restDay+=1;
var nowDay1 = getAfterDay(dayNum,intBeginDate,intBeginMonth,intBeginYear);
var newday = new Date(Date.parse(nowDay1.replace(/-/g, '/'))); //格式化时间
var newWeek = newday.getDay();
if(week == 5)
restDay+=2;
if(week == 6)
restDay+=1;
return getAfterDay(restDay,intBeginDate,intBeginMonth,intBeginYear);
}
function getAfterDay(dayNum,intBeginDate,intBeginMonth,intBeginYear){
date2 = intBeginDate + dayNum;
year2 = intBeginYear;
month2 = intBeginMonth;
maxDate2 = getMonthMaxDay(year2,month2);
if(date2 maxDate2){
date2 = date2 - maxDate2;
month2 += 1;
if(month2 12){
month2 = month2 - 12;
year2 += 1;
}else if(month2 == 12){
month2 = 1;
year2 += 1;
}
}else if(date2 == maxDate2){
date2 = maxDate2;
}
if(date2 getMonthMaxDay(year2,month2)){
getAfterDay(date2,1,month2,year2)//如果减去日期后还是大于下月的天数则递归调用
}
if(parseInt(date2,10) 10){
date2 = '0' + parseInt(date2,10);
}
if(parseInt(month2,10) 10){
month2 = '0' + parseInt(month2,10);
}
var resultDate2 = year2+"-"+month2+"-"+date2;
return resultDate2;
}
alert(getNextNumDay('2011-01-22',9));
/script