JavaScript学习笔记---基础知识总结

1. JS的HelloWorld

        JS代码需要写到script标签中:

                控制浏览器弹出一个警告框:

          alert();

        让计算机向页面中输出一个内容:

         document.write();可向body中输出一个内容;

        向控制台输出一个内容:

        console.log(); (开发人员查看)

2. JS编写的位置

        1. 可编写到标签的onclick属性中:

                点击按钮时,js代码才会执行;

                <button οnclick=”alert(‘你好‘);“>点我一下</button>

        2. 可编写到超链接的href属性中:

                点击超链接时,js代码才会执行;

                <a href=”javascript:alert(‘让你点你就点‘);”>你也点我一下</a>

                <a href=”javascript:;”>你也点我一下</a>

                虽可写在标签属性中,但属于结构与行为耦合,不方便维护,不推荐使用。

        3. 可写在script标签中;

        4. 可写在外部js文件中,通过script标签引入:

                <script type=’text/javascript” src=”js/script.js”></script>;

                可在不同页面中同时引用,也可利用浏览器的缓存机制,推荐使用;

                script标签一旦引入外部文件,不可再编写代码,写了浏览器也会忽略;

                可以新建一个script标签。

3. 基本语法

        JS注释:

                多行注释:/* */

                单行注释://

        1. JS中严格区分大小写

        2. JS中每条语句以 ; 结尾;

                若不写 ; ,浏览器会自动添加,但会消耗一些系统资源;并且可能加错分号,所以开发中必须写分号。

        3. JS中会忽略多个空格和换行,可利用空格和换行对代码格式化;

4. 字面量和变量

        字面量:

                都是一些不可改变的值;

                比如:1 2 3 4 5

                字面量可直接使用,但一般不会直接使用字面量;

        变量:

                可以保存字面量,变量的值可任意改变;

                变量更方便使用,开发中都通过变量去保存一个字面量,很少直接使用字面量;

                可通过变量对字面量进行描述。

        声明变量:

                JS中使用var关键字声明一个变量:

                        var a;

                        a = 123;

                        a = 456;

               声明和赋值同时进行:

                        var a = 123;

5. 标识符

        标识符:

                在JS中所有的可由我们自主命名的都可称为标识符。

                例如:变量名、函数名、属性名

        命名标识符的规则:

                1. 标志符中可含有字母、数字、_、$;

                2. 标识符不能以数字开头;标识符不能是ES

                3. 标识符不能是ES中的关键字或保留字;

                4. 标识符一般都采用驼峰命名法:

                5. 首字母小写,没单词开头字母大写,其余字母小写:HelloWorld

       JS底层保存标识符时实际采用Unicode编码,所以理论上讲,所有utf-8中的字符都可以作为标识符。但千万不要用。

6. 字符串

        数据类型指的就是字面量的类型:

        JS中一共有六种数据类型:

                String 字符串

                Number 数值

                Boolean 布尔值

                Null 空值

                Undefined 未定义

                Object 对象

        其中,String Number Boolean Null Undefined属于基本数据类型,Object属于引用数据类型。

         String字符串:

                JS中字符串需引号引起来;

                使用双引号和单引号都可,但不要混用;

                引号不能嵌套,双引号里不能双引号,单引号里不能用单引号,双引号里可用单引号;

                可使用 \ 进行转义特殊符号:

                \n 换行   \t制表符   \\ 表示\

        Number数值:

                JS中所有数值都是Number类型;

                包括整数和浮点数。

                可以使用typeof来检查一个变量的类型:

        typeof 变量

                检查字符串,控制台返回string。

                JS中可表示的数字的最大(小)值:

                        Number.MAX_VALUE

                        (Number.MIN_VALUE最小正值)

                        若超过最大值,则用Infinity表示正无穷、-Infinity表示负无穷;

                Infinity表示字面量。

        NaN表示一个特殊的Number数字,表示不是Not A Number。

        Number的计算:

                JS中整数运算基本可保证精确;

                JS中进行浮点数计算,可能得到不精确的结果;

                千万不要使用JS进行对精确度要求比较高的运算。

        Boolean布尔值:

                布尔值只有两个,主要用来逻辑判断:

                true:表示真

                false:表示假

        Null空值:

                Null只有一个,就是null;

                专门用来表示一个为空的对象;

                使用typeof检查时,返回object。

        Undefined未定义:

                值只有一个,就是undefined;

                当声明一个变量,但不给变量赋值时,它的值就是undefined;

                使用typeof检查时,返回undefined。

7. 强制类型转换

        类型转换主要指,将其它数据类型转换为Sting、Number、Boolean。

        String:

                1. 调用被转换数据类型的toString()方法;

                        调用xxx的yyy方法,就是调用xxx.yyy();

            var b = a.toString();

                        该方法不会影响到原变量,它会将转换的结果返回;

                        注意:null和undefined没有toString()方法,若调用,会报错。

                2. 调用String()函数,并将被转换数据的参数返回给函数:

            a = String(a);

                        Null、Boolean、Null、Undefined都可以。

          Number:                

                1. 使用Number()函数:

              a = Number(a);

                        字符串转数值:纯数字字符串,直接转换为数字;字符串含有非数字,输出NaN;

                        布尔转数值:true 1 false 0

                        Null转数值:0

                        Undefined转数值:NaN

                 2. 专门用于字符串:

                         parseInt()函数:可将字符串中有效的整数内容取出,转换为Number;

                         parseFloat()函数:可将字符串中有效的小数内容取出,转换为Number;

                         如果对非String使用,会先将其转换为String,然后再操作。

         Boolean:

                        使用Boolean()函数:

                        数字转布尔:除0或NaN,其余都为true;

                        字符串转布尔:除空串,其余都为true;

                        null false;

                        undefined false;

                        对象也会转换为true。

         隐式类型转换:

                        取两次非。

8. 其它进制的数字

        16进制以0x开头;

        8进制以0开头;

        2进制以0b开头(不是所有浏览器都支持)。

        像“070“有些浏览器会当作8进制,有些10进制,可使用下式解决:

                a = parseInt(a, 10);

  1. 运算符

                运算符也叫操作符,可对一个或多个值进行运算,并获取运算结果;

                比如:typeof为运算符,可获得一个值的类型,将该值的类型以字符串的形式返回。

        算数运算符:

                对非Number值运算,会先将值转换为Number,再进行运算;

                任何值与NaN作运算,得到的值都为NaN;

                若对两字符串进行加法运算,会进行拼串操作,并将结果返回(String);

                可使用 + 拼串换行;

                任何值和字符串作加法运算,都会转换为字符串,并作拼串操作:

              可利用此特点,将任一数据类型转换为String,这是隐式的类型转换,由浏览器自动完成,实际上进行String()操作。

                        (“c = “ + c)

                任何值作 - * / 运算时,都会自动转换为Number;

                利用上特点进行隐式的类型转换:

                       值-0  *1  /1转换为Number,原理同Number()。

        一元运算符:

                只需要一个操作数;

                +  正号   不会对数字产生任何影响

                -   负号   可对数字进行负号取反

                对非Number值,先转换为Number再运算;

                可对其他数据类型使用 + ,将其转换为number,原理同Number()。

        自增++:

                使变量在自身的基础上增加1;

                自增后,原变量的值会立即自增1;

                后++   a++;  值为自增前的值

                前++   ++a;  值为自增后的值

                都会使原变量立即自增1

        自减--

                使变量在自身的基础上减少1。

        逻辑运算符:

                !    非

                对非布尔值进行非运算,会先将该值转换为布尔值,然后再去取反;

                可对任意数据取两次反,将其转换为布尔值。

                &&  与

                JS中的与为短路的与,第一个为false,不会再看第二个。

                对非布尔值进行与运算,会先将该值转换为布尔值,然后再运算,并返回原值

                若两个都为true,返回后面的值;

                若两个有false,则返回靠前的false。

                 ||    或

                JS中的与为短路的或,第一个为true,不会再看第二个。

                对非布尔值进行或运算,会先将该值转换为布尔值,然后再运算,并返回原值

                第一个为true,返回第一个值;

                若第一个为false,返回第二个值。

        赋值运算符:

                =       右侧的值赋值给左侧。

                +=

                -=

                *=

                /=

                %=

        关系运算符:

                比较两个值之间的大小,成立返回true,否则false。

                <  <=  >  >=

                对非数值比较:

                先转换为数值,再比较

                “Hello”转换为NaN;

                任何和NaN比较都是false;

                如果符号两侧都是字符串,不会转换为值比较,会直接比较字符的Unicode编码

                比较时,一位一位比较;

                如果两位一样,比较下一位;

                比较中文时,没有意义;

                如果比较两个字符串型的数字,可能会得到不可预期的结果,所以比较字符串型的数字时,一定要转型。

                使用Unicode编码:

                JS中:\u + 四位编码

                网页中:&# + 编码,编码需要为十进制

        相等运算符:

                属于关系运算符,比较两值是否相等,相等返回true,否则返回false。

                ==

                两个值不同类型是,会自动转换为相同类型,进行比较。

                undefined衍生自null,所以这两个值作相等判断,返回true;

                NaN不和任何值相等,包括他本身,可通过isNaN()函数判断是否为NaN;

                !=

                两个值不同类型是,会自动转换为相同类型,进行比较。

                ===

                全等:和相等类似,但不会自动类型转换;

                类型不同,直接false。

                !==

                不全等:和不等类似,但不会自动类型转换;

                类型不同,直接true。

        条件运算符(三元运算符):

                条件表达式 ? 语句1 : 语句2

                true执行语句1并返回结果;false执行语句2并返回结果。

                如果结果为非布尔值,会先转换为布尔值,再返回。

        ,运算符:

                使用,分割多个语句,一般在声明多个变量时使用。

        运算符优先级:

                优先级不清楚,可使用 () 来改变优先级

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值