JS好学吗?

JavaScript015

JS好学吗?,第1张

js并不难学。Js给人那种感觉的原因多半是因为它如下的特点:A:本身知识很抽象、晦涩难懂,如:闭包、内置对象、DOM。B:本身内容很多,如函数库、对象库就一大堆。C:混合多种编程思想。它里面不但牵涉面向过程编程思想,又有面向对象编程思想,同时,它的面向对象还和别的编程语言(如:C++,JAVA,PHP)不大一样。就好像又是新的一样,让你对曾经学的面向对象产生了怀疑......D:辛苦学习后又看似和实际应用脱节。通常学了很久的js基础之后,变量、函数、对象你也都略知一二,但一到公司开发项目的时候,却又难以下手。因为公司在开发实际项目的时候通常都是直接用它的衍生库,如:jquery,angular,boostrap,amaze,layui,ueditor等,而这些库又多如牛毛,同时还有自己的难点。让你都不知道该学哪个好,甚至都怀疑自己学的是不是js了,好像有多个版本的js一样,总是学不完......那么,怎么才能在js领域内学的轻松甚至游刃有余呢?我总结了一些实战意义的js学习经验:1.首先要紧紧抓住它的地位时刻都不能忘记,否则很容易犯“一叶障目不见泰山”的错误。不要学了很久就知道js是编程语言,就是写代码,而且特点就是乱七八糟就完了,那样是学不好js的。要时时抓住它的地位,确切的说是它在整个Web中的地位:它属于前端的核心,主要用来操控和重新调整DOM,通过修改DOM结构,从而来达到修改页面效果的目的。要用这个中心思想去指导后续的一切js的学习,并且形成条件反射。 2.要有一条清晰的学习路线这个只能是过来人给你提供参考了。我的学习路线如下:A:js基础部分,如:定义变量、函数、数组、字符串等的处理,内置函数、内置对象等;B:js面向过程编程思想,封装出各个函数,试着用这些去做一些常见的小功能,如:选项卡、自定义多选按钮、自定义播放器、3D幻灯片;C:js面向对象编程思想,试着去封装一些你自己的对象,提供出有意义的接口出来;D:学了上述的内容,然后学常用的库,这里必须学jquery;E:学基于jquery之上的常见插件,如:bootstrap,Layer,富文本编辑器等;F:综合应用上面的多种库写实际项目的模板,多写几套。 3.从多角度去学习和领悟充分调动你所学的东西,从多角度去做某一功能,如:以前你是从面向过程角度做的,现在改为从面向对象的角度再来做,或者继续做成可以直接使用的插件,提供属性、方法等出来。争取让你做的这个功能逐渐能使用到实际项目中来。这样的好处:既综合应用了你的所学,又能有实际意义。 4.注意培养信心此时的你,不适合一来就看很复杂很炫的网页效果的源代码,也不适合一来就学jquery,angular,vue,bootstrap这些东西。这些内容包含了很多深奥的知识在里面,在没有任何基础的情况下直接学这些,会严重打击你的自信心。而此时你是弱小的,你需要的是培养信心,而不是反过来,否则结局很可能是“夭折”,离学有所成也就遥遥无期了。 5. 多写总结这种总结不但包括源代码、显示效果截图,还应该很容易犯的错误和对应的解决方法以及最后一两句精简的结论性语句。对自己写的总结不是写完了就了事了,要多回顾、多改进、多精简。到做项目的时候,应该是看里面的一两句话就知道是讲什么了,而不要再去看长篇大论了。 6.构建知识导图这个可以让你越学越清晰,你可以按你喜欢的任何形式去做,只要自己印象深刻就行。注意:知识导图也应该是经常修改、修正,让它更合理、更清晰。学习编程知识,就来北京尚学堂,优秀的师资和多年的编程教育经验,会让你在学习的道路上快人一步。

在web开发应用层面JavaScript需要重点学习的内容并不是特别的多。主要需要大家掌握:1、JavaScript的相关基础,即变量、数据类型、操作符、流程控制、函数、简单类型和复杂类型等内容,2、jQuery的应用,jQuery是JS的一个框架,它提供了一种简便的JS设计模式,优化HTML文档操作、时间处理、动画设计和Ajax交互等内容。3、JavaScript面向对象、函数进阶、递归及其应用、正则表达式、ES6等等JS的高级课程内容。高级课程内容相对难度会有所提升,但是只要能理解了相应的编程思维,整体掌握难度并不是很大。

逻辑如下:

1、先判断两个时间的时间差,当然如果得到的时间是13位时间戳的话你需要转化一下

2、判断时间够一天显示天数,够一小时显示小时数

相关代码:

//获取时间,时间戳转换,不是则不转

var mydate1 = new Date(parseInt(time1.replace("/Date(", "").replace(")/", "")))

var mydate2 = new Date(parseInt(time2.replace("/Date(", "").replace(")/", ""))) 

//获取剩余秒数 

var timerc =dateDiff(mydate, '2015/05/19 10:00:00') / 1000

function dateDiff(date1, date2) {

            var dt1 = new Date(Date.parse(date1))

            var dt2 = new Date(Date.parse(date2))

            try {

                return Math.round((dt2.getTime() - dt1.getTime()))

            }

            catch (e) {

                return e.message

            }

        } 

//循环调用倒计时

  function add() { //加时函数

            --timerc //时间变量自减1

            var day = parseInt(timerc / 86400)

            var hour = parseInt((timerc % 86400) / 3600)

            var min = parseInt((timerc % 3600) / 60)

            var sec = Number(parseInt(timerc % 60 / 10)).toString() + Number(parseInt((timerc % 10))).toString()

            if (day > 0) { //如果不到5分钟

                $("#day").html(day + '天') //写入天数

                $("#hour").html(hour + '时') //写入小时数

                $("#min").html(min + '分') //写入分钟数

                $("#sec").html(sec + '秒') //写入秒数(两位)

            }

            else if (hour > 0) {

                $("#hour").html(hour + '时') //写入小时数

                $("#min").html(min + '分') //写入分钟数

                $("#sec").html(sec + '秒') //写入秒数(两位)

            }

            else if (min > 0) {

                $("#min").html(min + '分') //写入分钟数

                $("#sec").html(sec + '秒') //写入秒数(两位)

            }

            else if (sec != '00') {

                $("#sec").html(sec + '秒') //写入秒数(两位)

            }

            else {

                tiao(activity) return true//时间到0调用函数

            }

            setTimeout("add()", 1000) //设置1000毫秒以后执行一次本函数

        }

望采纳!