js学习

JavaScript学习

数据类型

  1. 整数 number 包含整数和浮点数
  2. 布尔 boolean
  3. 字符串类型 string 必须用双引号或者单引号括起来
  4. 未定义类型 undifined 专门用来确定一个已经创建但是没有初始值的变量
  5. 空类型 null 用于表面某个变量为空
  6. 对象类型 object , JavaScript里面的对象,数组

转换和字符串操作

  1. 转字符串 通过 + 号,或者 toString()方法
  2. 通过 parseInt()将字符串转换成整型
  3. 通过 parseFloat()将字符串转换成浮点型
  4. charAt()获取字符串指定索引处的字符
  5. toUpperCase()将所有字母变成大写
  6. toLowerCase()将所有字母变成小写
  7. indexOf()返回字符串中出现特定字符串第一次出现的位置
  8. substring()返回字符串的某个子串
  9. slice()返回字符串的某个子串,支持负数参数,功能更强大
  10. concat()用于将多个字符串拼接成一个字符串
  11. replace()将某个字符串的子串替换成目标子串
  12. split()将某个字符串按照指定分隔符拆分
  13. match()正则匹配搜索, 返回搜索的字符串
  14. search()正则匹配搜索,返回索引

比较2个字符串使用==,不需要使用equals

正则表达式

创建正则表达式

var reg = pattern;
var reg = /aaa/;//不要写引号
var reg = new RegExp(pattern);

RegExp对象的常用方法

  1. exec(str)检查字符串中指定的值, 如果找得到值,并确定其位置
  2. test(str)检索字符串中是否有满足条件的值,返回true或者false

通配符

  1. .匹配任意字符
  2. \d匹配数字类型
  3. \D匹配非数字类型
  4. \s匹配空白字符,空格,换行
  5. \S匹配非空白字符
  6. \w匹配数字,字母,下划线
  7. \W匹配非数字,字母,下划线
  8. \b匹配字母边界
  9. \B匹配非字母边界
  10. \b以..开头, \ba 以a开头, o\b以o结尾
  11. [abc]查找方括号里面的任何字符
  12. [^abc]查找任何不在方括号里面的字符
  13. [0-9]查找任何从0到9的数字
  14. [a-z]查找任何从小写a到小写z的字符
  15. [A-Z]查找任何从大写A到大写Z的字符
  16. [A-z]查找任何从大写A到小写z的字符
  17. (red|blue|green)查找任何指定的选项

正则表达式的量词

JavaScript的数组

var arr1 = [2,3,4];
var arr2 = [];
var arr3 = new Array();

特点

  1. 数组长度可变, 总长度等最大索引+1
  2. 同一数组中的元素类型可以互不相同
  3. 当访问为副总的数组元素时, 该元素为undefined,不会数组越界

运算符

算术运算符

赋值运算符

比较运算符

逻辑运算符

位运算符

其他运算符

  1. 三目运算符?

  2. 逗号运算符,返回最右边表达式的值

    var a,b,c,d;
    a = (b=5,c=2,d=3);
    //a = 3
    
  3. void运算符

  4. typeof判断类型

  5. instanceof判断子类型

控制流程

条件控制

  1. if-else
  2. if - else if - else
  3. switch(表达式){case:break;}

循环控制

  1. while(循环条件){}

    循环次数不确定时,使用

  2. do{}while(循环条件)至少执行一次

  3. for(表达式1,表达式2,表达式3)循环

    循环次数确定时,使用

    for()
    
  4. for(变量 in 对象)

    遍历数组中的所有数组元素,遍历JavaScript对象的所有属性

  5. break跳出循环

  6. continue跳过本次循环

特殊语句

语句块

{
    var a = 1;
    var b = 'a';
}

空语句

异常抛出语句

throw new Error("aaaa");

异常捕获语句

try{
    
}catch(e){
    console.log(e.message);
}finally{
    
}

with语句(和kotlin的with一样)

with(document){
     
}

函数

函数定义

  1. 命名函数 function 函数名(参数列表){执行语句;return 返回值,可以没有}
function t(){
    return "hello";
}
  1. 匿名函数 function(参数列表){执行语句;return 返回值,可以没有}
var t = function(){
    return "hello";
}
t();//调用
  1. 使用function类构造匿名函数
new Function(参数列表,函数执行体)

函数调用

  1. 直接调用函数

    对象.函数引用

    当声明的一个函数没有指明分配给哪个对象使用的时候,默认分配给window对象

  2. 以call方法调用函数

    函数引用.call(调用者,参数1,参数2,...)

  3. 以apply方法调用函数

    函数引用.apply(调用者,arguments)

    arguments相当于数组,用来存放多个参数,和call方法类似

function show(name,age){
    alert("name: "+name+" age: "+age);
}
show("zhangsan",20);
show.call(window,"zhangsan",20);
show.apply(window,["zhangsan",20]);

//函数作为参数
function show2(arr,func){
    func.call(window,arr);
}
show2([1,2,3,4],function(arr){
    for(i in arr){
        document.write(arr[i]+"<br/>")
    }
});

常用的内置对象

Date

  1. 创建方式

    new Date();
    new Date(month dd,yyyy hh:mm:ss);
    new Date(yyyy,month,dd,hh,mm,ss);
    new Date(yyyy,month,dd);
    new Date(ms);
    
  2. Date对象获取时间细节方法

    getDate();//返回一个月的某一天 (1~31)
    getDay();//返回一周中的某一天(0,6),就是星期
    getMonth();//返回月份(0,11)
    getFullYear();//返回4位数字年份
    getHours();//返回小时(0,23)
    getMinutes();//返回分钟(0,59)
    getSeconds();//返回(0,59)
    getTime();//返回从1970年1月1日至今的毫秒数
    
    

Math

abs(x);//返回绝对值
cell(x);//上舍入
floor(x);//下舍入
max(x,y);//返回x,y中的最大值
min(x,y);//返回x,y中的最小值
pow(x,y);//返回x的y次幂
random();//返回0~1的随机数
round(x);//把数4舍5入为最接近的整数
sqrt(x);//返回平方根

对象的创建

  1. 使用new关键字调用构造器创建对象

    function Student(name,age){
        this.name = name;
        this.age = age;
    }
    var s1 = new Student();
    var s2 = new Student("zhangsan",20);
    
  2. 使用Object创建对象

    var myobj = new Object();
    myobj.name = "zhangsan";
    myobj.age = 20;
    //相当于java的tostring, this指向myobj
    myobj.info = function(){
        doucument.write("my name is: "+this.name +"<br/>");
        doucument.write("my age is: "+this.age +"<br/>");
    }
    myobj.info();
    
  3. 使用JSON语法创建对象(javaScript Object Notaion)

    {name:"zhangsan",age:20}//JSON对象
    {people:[//JSON数组
        {name:"zhangsan",age:20},
        {name:"zhangsan2",age:21},
        {name:"zhangsan3",age:22}
    ]}
    
    //JSON对象创建举例
    var p = {
        name:"zhangsan",
        age:20,
        info:function(){
            document.write("name: "+this.name+" , age: "+this.age);
        }
    }
    p.info();
    
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容

  • JavaScript是什么? JS是一种小型的、轻量级的、面向对象的、跨平台的客户端脚本语言。JS是嵌入到浏览器软...
    钩不了沉阅读 1,881评论 0 6
  • 1. JavaScript介绍 脚本必须位于script与/script标签之间 放置在body和head部分,通...
    Xavier_yang阅读 516评论 0 0
  • 一、js的声明和引入script src=“”;script type 注意:js是一门单独的语言,可以声明在HT...
    CodeDeLi阅读 282评论 0 5
  • 使用变量要先进行声明 采用异步工作模式 数值NAN是JavaScript中唯一不等于自身的值 数组的forEach...
    bluishwhiteC阅读 247评论 0 0
  • 可维护性 JS从完成小的网页特效和验证到现在要处理各种复杂的逻辑,页面中代码的数量也是成倍的增长。这就让编写可维护...
    exialym阅读 505评论 0 3