黑马程序员技术交流社区

标题: 成都黑马前端1期 [打印本页]

作者: 小资男    时间: 2019-4-25 17:47
标题: 成都黑马前端1期
javascript
        介绍
                发展历史
                作用
        组成
        书写位置
        变量
                变量声明
                        var 变量名;
                变量赋值
                        变量名 = 值;
                变量调用
                        变量名
                变量命名
                        1】字母、数字、下划线、$组成,数字不开头
                        2】不能使用关键字、保留字,例如:for、name
                        3】严格区分大小写
                        4】见名知意
                        5】驼峰命名,第1个单词首字母小写,其他的单词首字母大写
                变量使用扩展
                        1】一次性声明多个变量
                        2】变量只声明未赋值,它的值为undefined
                交换两个变量的值
                        声明第三个变量, 值为空,然后2给1,3给2,1给3
        数据类型
                数据类型分类
                        简单数据类型
                                数字型(整数、小数)
                                        进制(表示数字)【了解】
                                                八进制(用0开头)
                                                十进制【默认】
                                                十六进制(用0x开头)
                                        最大值和最小值【了解】
                                        特殊值:NaN(not a number,不是1个数字)【掌握】console.log('三遍老师' - 20);  注意
                                字符串型(用引号引起来的字符)
                                        用单引号或双引号,引起来的字符,例如:'123'、"true"
                                        单引号和双引号嵌套
                                                口诀:【外单内双,外双内单】
                                               
                                        字符串中使用转义符
                                                \n,换行
                                                \t,tab键缩进
                                        字符串长度【字符的个数】
                                                字符串.length
                                        字符串的拼接
                                                拼接运算符,+【字符相连,数值相加】
如果+号两边有任意一边是字符串,则进行字符相连操作,
如果+号两边都是数字,则进行相加操作。
                                                注意:变量和字符串拼接时,不能把变量用引号引起来。【引引加加】
                                布尔型(真或者假,true或者false)
                                未定义(undefined)
                                null(空)
                        复杂数据类型
                                对象
                变量的数据类型检测(变量中的值是什么类型,变量就是什么类型)
                        typeof 变量名
                数据类型转换
                        把其他类型转换为字符串
                                转换的方式
                                        方式1:待转变量名.toString()
                                        方式2:String(待转变量名)
                                        【隐式转换】方式3:待转变量名 + '';
                                具体的操作
                        把其他类型转换为数字型
                                转换的方式
                                        方式1,转换为整数:parseInt(待转变量名)
                                        方式2,转换为小数:parseFloat(待转变量名)
                                        方式3,转为数字型:Number(待转变量名)
                                        【隐式转换】方式4:待转变量 - 0 或者 待转变量 * 1
                        把其他类型转换为布尔型
                                转换方式
                                        Boolean(待转变量名)
                                       
        运算符
                算数运算符
                        +、-、*、/
                        %取余(取模)
                        注意:小数有精度问题,不能直接判断两个小数是否相等
                自增和自减运算符【一元运算符】
                        前置自增
                        后置自增
                        【前置和后置的区别】
                                1-单独使用前置或者后置自增时,没区别
                                       
                                2-自增表达式还参与了其他运算【口诀】
                                                // 前置自增(变量先自加1,然后返回自增表达式的结果)
                                                // 后置自增(先返回变量的值,然后变量再自加1)
                                       
                比较运算符【比较运算表达式的结果为布尔值】
                        >、>=、<、<=
                        相等,==
                        不等,!=
                        全等,===
                        不全等,!==
                逻辑运算符
                        逻辑与,&&【两边都为真,则结果为真,即一假为假】
                        逻辑或,||【一边为真,则结果为真,即一真为真】
                        逻辑非,!(取反)
                        【逻辑运算中断,如果表达式1能够决定最终的结果,则表达式2不会执行,即发生中断】
                                逻辑与中断的情况【一假为假】:表达式1的结果为假
                                       
                                       
                                逻辑或中断的情况【一真为真】:表达式1的结果为真
                                       
                                       
                赋值运算符
                        =
                        +=
                        -=、*=、/=、%=
                       
                三元运算符:? :
                运算符优先级
        流程控制语句
                顺序结构语句【从上往下依次执行,默认】
                分支结构语句(只会执行1个分支)
                        if语句
                                单分支,if(){}
                                双分支,if(){}else{}
                                多分支
                        switch语句
                        if和switch语句的区别(区分开什么时候用if,什么时候用switch)
                循环结构语句
                        for循环语句
                                双重for循环
                        while循环语句
                        do while循环语句
                        什么时候用for循环,什么时候用while循环
        数组
                什么是数组
                        一组数据的集合,每个数据的类型可以是任意的。
                创建数组
                        方式1:var arr = new Array();
                        方式2:var arr = [10, 'abc', true];
                数组元素
                        数组中的数据叫做数组元素,通常简称“元素”
                数组元素的索引
                        数据都被编了一个号,这个号就叫索引或下标。号从0开始编的。
                数组的长度(元素的个数)
                        数组名.length
                遍历数组(使用for循环)
                        把数据中的元素从头到尾访问一遍。
                        正序遍历
                        倒序遍历
                数组冒泡排序【笔试必考】
        函数
                作用:重复使用代码。
完成某项功能的代码体。
                声明函数
                        命名函数(有名字的函数)
                                function 函数名(){
  // 函数体
}
                        函数表达式(匿名函数)
                                var fn = function(){};
把一个没有名字的函数,赋值给了一个变量。
fn();
                调用
                        函数名();
                小技巧
                        1)通常1个函数只干1件事
                        2)函数中使用true或者false来表示状态
                        3)用1个变量保存这个状态,先假设1个状态,再判断条件,如果满足则改变状态,最后返回这个状态变量。
                参数
                        形参,形式上的等待被赋值的变量(不用使用var声明的变量)
                        实参,实际参与代码执行的数据,赋值给形参变量。
                        形参和实参个数不匹配的情况
                                形参个数少于实参【多出的实参数据没有人接收】
                                形参个数多于实参【多出的形参没有被赋值,那么它的值为undefined】
                        调用函数时,实参的个数不固定情况
                                函数内有1个arguments对象【伪数组】,保存了所有的实参数据。
可以像操作数组一样,去操作这个对象。
                返回值(结果)
                        function 函数名(){
  // 函数体
  return 结果值;
}
                        注意事项
                                1)return能够终止函数。return后面的代码不会被执行。
                                2)return只能返回1个值,如果要返回多个值,返回一个数组。
                                3)如果没有return或者return后面没有值,默认返回undefined
        作用域
                全局作用域【script标签之间或者外部的js文件】
                局部作用域【函数内部】
                全局变量和局部变量
                        全局变量(再全局作用域声明的变量),可以在全局作用域或者局部作用域访问。
                        局部变量(函数内声明的变量),只能在局部作用域访问【只能在函数内部使用】
        作用域链
                访问1个变量时,先在当前作用域查找这个变量,如果找到直接使用,如果找不到就向上一级作用域去查找,这个查找过程咱们可以称之为“作用域链”
               
               
        预解析
                js代码在执行时,会经过两个阶段(1)把代码排列好顺序【预解析】2)从上往下依次执行)
                预解析:把变量声明和函数声明提升到当前作用域的前面。
                注意写代码:
                        1)变量要先声明,再使用。
                               
                        2)命名函数可以先声明再调用,也可以先调用再声明
                               
                               
                        3)函数表达式,必须先声明,再调用
                               
                               
        对象
                什么是对象?由属性和方法组成。
                创建对象
                        自定义对象
                                方式1:字面量 var obj = {};
                                方式2:var obj = new Object();
                                方式3:var obj = new 构造函数名();
                使用对象
                        调用属性(获取属性值)
                                方式1:对象名.属性名
                                方式2:对象名['属性名']
                                        当属性名不是具体值,时变量时,用这种调用方式
                        调用方法:对象名.方法名();
                内置对象
                        Math数学对象
                                最大值和最小值
                                绝对值
                                随机数
                        Date日期时间对象
                        Array数组对象
                                检测是不是数组
                                添加元素
                                        在末尾添加元素
                                        在头部添加元素
                                删除元素
                                        删除最后一个元素
                                        删除第一个元素
                                翻转数组
                                数组排序 sort
                                获取元素的索引值, indexOf()
                                把数组转为字符串,join()
                        String对象
                                为什么字符串变量可以操作属性和方法?【基本包装类型】
                                为什么要尽量避免大量字符的拼接操作?【字符串在内存中是不可变的】
                                根据字符返回位置,字符串.indexOf('字符');
                                根据位置返回字符,字符串.charAt(index)
                                可以像遍历数组一样去遍历字符串,字符串[index]
                使用for in语句遍历对象(从头到尾访问一遍对象的属性)
                       




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2