二十分钟学会Javascript中级语法

二十分钟学会Javascript中级语法,图片来自网络
1. 说在前面的话

本篇文章,是一篇关于Javascript的中级进阶总结。笔者希望大家能够在30分钟之内阅读完并认真体会,多敲代码,多总结,毕竟Javascript本身并不难。

2. 谈谈Javascript的对象

Javascript作为一种弱语言类型的语言,同时也是一种动态类型的语言。在使用Javascript的过程中,也常常需要用到Javascript的内置对象以及自定义的对象。

2.1 如何创建对象

Javascript是一种弱语言类型的语言,不必像Java、C#等高级语言那样必须通过构造函数的方法来创建对象,在Javascript中,主要有两种创建对象的方法,一种是直接通过new关键字定义,一种是通过函数来定义。如下:

   //第一种方式,直接通过new创建对象;
   var demo = new Object();
   demo.name = "Anderson";
   demo.sex = "male";
   demo.age = 23;

   //第二种格式,直接实例化,基本上和Json语法是一致的,一般作为第一种方式的替代语法。
   var demo = {name:"Anderson",sex:"male",age:25};

   //第三种格式,通过构造器来创建对象
   function Demo(name,sex,age){
       this.name = name;
       this.sex = sex;
       this.age = age;
   }
   var demo = new Demo("Andeson","male",25);
2.2 如何修改对象

Javascript和高级语言的对象语法是不一样的,总的来说,其限制比较少,当创建完对象后,可以对对象的属性、方法等进行动态的修改,比如添加一个新的属性,添加一个新的方法等。

    var demo = {Name:"Anderson"};
    demo.Sex = "male";
2.3 理解Javascript中的数字对象

在Javascript中,所有的数字都是64位,所有数字均由浮点类型组成。Javascript中采用的是IEEE754标准定义的64位浮点数格式表示数字,它能表示最大值为±1.7976931348623157 x 10308,最小值为±5 x 10 -324。

    var demo1 = 7;       //十进制表示法
    var demo2 = 07;      //八进制表示法
    var demo3 = 0x12;    //十六进制表示法

    var demo4 = 12e12;   //科学计数法表示法
    var demo5 = 12e-12;  //科学计数法表示法

    var demo7 = 128;
    var demo8 = demo7.toString(16);  //转化为十六进制
    var demo9 = demo7.toString(8);   //转化为八进制
    var demo10= demo7.toString(2);   //转化为二进制

    var demo11= Infinity;      //无穷大表示法
    var demo12= isNaN(100);    //非数字值表示法

    var demo13= typeof(12);              //数字的类型为 Number
    var demo14= typeof(new Number(12));  //Number的类型为Object
    var demo15 = (demo13 == demo14);     //两者相等
    var demo16 = (demo13=== demo14);     //两者不相等

2.4 理解Javascript中的字符串对象
    var str = "Hello,Anderson";

    var demo1 = str[0];               //通过索引,获取字符串中的字符,超出最大值则返回undefined
    var demo2 = str.indexOf("H");     //获取目标字符串在源字符串中的位置,找不到则返回 -1
    var demo3 = str.length;           //获取字符串的长度
    var demo4 = str.lastIndexOf("H"); //获取目标字符串在源字符串中的位置,从串尾开始找,找不到返回-1
    var demo5 = str.match("Anderson");//从源串中匹配目标串,若有,则返回目标串,否则,返回返回 null
    var demo8 = str.replace("A","d"); //将源串中的目标串替换为替换串
    var demo9 = str.toUpperCase();    //转换为大写
    var demo10= str.toLowerCase();    //转换为小写
    var demo11= str.split("d");       //转化为数组

    var demo12= "\'";       //表示单引号
    var demo13= "\"";       //表示双引号
    var demo14= "\\";       //表示斜杠
    var demo15= "\n";       //表示换行
    var demo16= "\r";       //表示回车
    var demo17= "\t";       //表示制表符
    var demo18= "\b";       //表示空格
    var demo19= "\f";       //表示换页
2.5 理解Javascript中的日期对象
    var demo1 = new Date();            //创建对象,当前日期
    var demo2 = new Date(22e9);        //创建对象,毫秒数
    var demo3 = new Date("2016-06-04");//创建对象,日期字符串
    var demo4 = new Date(2016,5,12,12,12,12); //创建对象,年月日时分秒

    var demo5 = (demo1 > demo2);        //比较日期
2.6 理解Javascript中的数组对象
    var demo1 = new Array(1,2,3,4);       //创建数组
    var demo2 = [1,3,4,5];                //创建数组
    var demo3 = demo1.concat(demo2);      //合并数组
    var demo5 = demo1.concat(demo2,demo3);//合并数组
2.7 理解Javascript中的正则对象RegExp

RegExp是正则表达式(Regular Expression)的缩写。正则表达式主要用于文本的检索。其基本的语法形式如下:

    var pattern = new RegExp(pattern,modifiers);  //通过构造方法创建正则对象
    var pattern = /pattern/modifiers;             //直接声明正则对象

    //其中,修饰符modifiers有两种,i和g,i表示不区分大小写,g表示全文检索
    //pattern表示检索模型

    var str = "Hello, Anderson Lu";
    var pattern = /llo/gi;
    var demo1 = str.match(pattern);  //使用实例

    var pattern2 = new RegExp("\\Lu\\gi");
    var demo2 = pattern2.test(str);  //判断str中是否有符合模式pattern2的串,返回true或者false
    var demo3 = pattern2.exec(str);  //返回匹配的字符串

除此之外,还有一些其他的对象,比如Math算术和布尔等等。大家可以通过W3CSchool进行学习。

附录 文章更新日志
2016-06-04 文章第一版本
2016-06-05 修正八进制表示法笔误
2016-06-05 修正十六进制转化错别字
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,670评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,928评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,926评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,238评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,112评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,138评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,545评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,232评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,496评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,596评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,369评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,226评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,600评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,906评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,185评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,516评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,721评论 2 335

推荐阅读更多精彩内容