近来一直在学习js和jquery。刚刚进入前端工作还没有多久,虽然大学里学习的是编程自认为也学的还可以,但前端接触的不多,一直认为前端十分简单。其实不然,特别是工作的时候要自己设计一个完整的项目前端,发现其中还是有许多的问题,需要去摸索的。因为项目的需求,我其实先学的是jquery,但jquery是基于js的所以我差不多是两者一起学习。近来项目已经进行了一段时间,所以想记录一下自己学习的过程,分享一点微薄经验给大家。如果有什么问题,十分乐意大家指出。

(一)、javascript的核心:

  1、ECMASCRIPT(定义了其语法、类型、语句、关系等。)

  2、文档对象DOM(级别1级、2级、3级,我们一般用2级即可满足开发的需求,这个我也不怎么了解,但十分有兴趣,在之后有一定水准后再来仔细研究)

  3、浏览器对象模型BOM

(二)、操作符

  1、typeof():返回的类型有undefined、string、number、object、function。

    其中注意:typeof(null)返回的是object;typeof([1,2,3,4])返回值也是object;typeof(undefined)返回的是undefined。

    所以当你要判断某个对象的话:

    if(typeof(value)=='object' && Object.prototype.toString.call(value).toLowerCase()=='[object object]' && !value.length){
      if('displayName' in value) return value.displayName;
    }

    其中:Object.prototype.toString.call()也是法判断数据类型的方法,有兴趣的可以网上找

  2、isNaN():用于检查其参数是否是非数字值,也可用于判断其参数是否是 NaN,因为NaN不能用==或者===来进行判断,所以isNaN()是必须的。

(三)、String

  1、转义:\n换行、\t制表、\b空格、\r回车、\f进纸、\\斜杠、\'单引号、\"双引号、\xnn以十六进行表示一个字符。

  2、toString():将数值转化成String,但undefined和Null不可转化,可以用String()强制类型转化。

(四)、运算符

  1、+加、-减、*乘、/除、%求余

  2、自动类型转化:+box(取正)、-box(取负)

  3、一元运算符

    前置递增(++box),后置递增(box++)。如果没有进行赋值,那么两者都一样。

    例:var box = 100;                                                                                   var box = 100;

      var age = ++box;  //box先累加,再将box赋值给age                         var age = box++;   //先将box赋值给age然后,box自身再进行累加

      结果:age=101;box=101                                                                结果:age=100;box=101

  4、关系运算符

    注意:如果2个数进行比较,其中一个数为数值、另外一个数为字符则会将字符转化为数值进行比较;如果2个都是字符则将各自的第一个字符转化为

       ASCII码进行比较。

    例:“123”>"22"  //返回false

(五)、语句

  1、只有一行语句的叫单行语句,用{}包含的语句集合叫复合语句

  2、if语句:如果符合if语句的判断,那么执行if后面的一条语句(代表如果没有{}包含的话,只执行后面的一条语句),个人建议不过是不是只执行一句最后都用{}

       包含,以便于代码维护。if里面的判断。数值、字符都会转化为true;0或者“”则是false

(六)、switch-case:

  1、其中break中途退出,防止穿透。再循环中也可用于跳出整个循环。

  2、default 相当于if语句中的else

(七)、do...while和while:do...while先运行再判断,不过是否符合判断都先运行一次。while,先判断再运行。

(八)、for ...in是一种精准的迭代,可用来枚举属性

    var box = {                                    for(var x in box){

      'name':'张三',                               console.info(x);  //注意枚举的是属性,结果:name、age、height

      'age':'26',                              }

      'height':'176'

    }

(九)、break和continue:break退出循环,continue退出当前循环。

(十)、whith:将代码作用域设置到一个特定的参数中

     with(box){

      var n = name;  //相当于box.name

     }

这一次的总结先到这里,虽然都十分的基础,但是运用熟练的话也可以减少一些代码量的。如果其中有什么问题或者补充的话,是否乐意大家指出。

      

JS基础学习篇(一)的更多相关文章

  1. JS基础学习——对象

    JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...

  2. JS基础学习——闭包

    JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...

  3. JS基础学习——作用域

    JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...

  4. 鸟哥Linux私房菜基础学习篇学习笔记3

    鸟哥Linux私房菜基础学习篇学习笔记3 第十二章 正则表达式与文件格式化处理: 正则表达式(Regular Expression) 是通过一些特殊字符的排列,用以查找.删除.替换一行或多行文字字符: ...

  5. 鸟哥Linux私房菜基础学习篇学习笔记2

    鸟哥Linux私房菜基础学习篇学习笔记2 第九章 文件与文件系统的压缩打包: Linux下的扩展名没有什么特殊的意义,仅为了方便记忆. 压缩文件的扩展名一般为: *.tar, *.tar.gz, *. ...

  6. 鸟哥Linux私房菜基础学习篇学习笔记1

    鸟哥Linux私房菜基础学习篇学习笔记1 第三章 主导分区(MBR),当系统在开机的时候会主动去读取这个区块的内容,必须对硬盘进行分区,这样硬盘才能被有效地使用. 所谓的分区只是针对64Bytes的分 ...

  7. 拒绝从入门到放弃_《鸟哥的 Linux 私房菜 — 基础学习篇(第三版)》必读目录

    目录 目录 前言 关于这本书 必看知识点 最后 前言 相信部分刚进入这个行业的新同学会对一个问题感到疑惑,为什么从培训学校出来的学员不被欢迎? 这里记录下一些我个人的看法(博主也曾有面试新员工的经历) ...

  8. JS基础入门篇(三十五)—面向对象(二)

    如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)

  9. 我的JS 中级学习篇

    在codefordream上进入中级学习后,感觉立马从js的基础学习往前跳了好远,上面的东西好像都是第一次看到一样.这时候才发现,说来也曾接触过js,但是这时候才发现对js的认识就停在知道两点:js中 ...

随机推荐

  1. .Net上传文件大小配置

    1.起因 今天同事在上传文件的时候,发现一直失败,说文件比较大.一听就明白了,肯定是上传文件大小的问题啊.然后查看web.config文件,发现设置过文件上传的大小限制.配置文件上传大小,分为2部分. ...

  2. angular-ui-alert

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. php实现人员的权限管理

    权限是指不同的人员登录以后会用不同的页面. 一.想好这个权限是什么? 肯定要有用户表.还有用户所用的角色.然后就是权限功能表:可是在这里面有关联也就 是会另外有两张相互关联的表,这样也就是5张表 在数 ...

  4. Java编码问题汇总

    转自 http://www.blogjava.net/zhangchao/archive/2011/05/26/351051.html Thanks Java编码问题汇总 工作中经常遇到java编码问 ...

  5. MySQL--当mysqldump --single-transaction遇到alter table(2)

    在上篇<MySQL--当mysqldump --single-transaction遇到alter table>中测试发现,在MySQL 5.6版本中,如果在mysqldump期间修改表, ...

  6. Vijos 1001 谁拿了最多奖学金

    题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1 ...

  7. 关于在eclipse上部署Tomcat时出现8080等端口被占用问题的解决方法

    问题描述: 在eclipse中部署Tomcat时,出现如下错误. 解决方法如下: 方法一: 1.开始->cmd->输入命令netstat -ano出现下图所示(注意下边显示有些错位,最后一 ...

  8. POJ 2502 Subway-经过预处理的最短路

    Description You have just moved from a quiet Waterloo neighbourhood to a big, noisy city. Instead of ...

  9. IT行业歧视40岁以上人群为找工作还要谎报年龄[转]

    IT行业歧视40岁以上人群为找工作还要谎报年龄(这样不好) http://www.aliyun.com/zixun/content/2_6_616161.html [赛迪网讯]4月5日消息,许多40多 ...

  10. Opencv探索之路(十九):读写xml和yml文件

    有时候我们处理完图像后需要保存一下数据到文件上,以供下一步的处理.一个比较广泛的需求场景就是:我们对一幅图像进行特征提取之后,需要把特征点信息保存到文件上,以供后面的机器学习分类操作.那么如果遇到这样 ...