JavaScript笔记(上)

JavaScript包含ECMAScript,DOM,BOM
JS的特点——解释型语言,类似于c和java的语法结构,动态语言,基于原型的面向对象
alert    弹出一个提示
document.write    向页面写
console.lop    向控制台上输出
js代码执行的特点,自上向下执行
//单行注释
/*
多行注释
*/
如果不加;(分号)系统会自己加,但会占用资源影响性能,有时还会加错
js中会忽略多个空格和换行,所以我们可以用空格和换行对格式进行格式化
var声明变量
var a=80;
console.log(a);就可在控制台上输出这个值
标识符
1.标识符中可以含有字母、数字、下划线、$
2.标识符不能以数字开头
3.标识符不能是es中的关键字或保留字
4.标识符一般都采用驼峰命名法
helloWord xxxYyyZzz
JS底层保存标识符时实际上是采用的Unicode编码,所以理论上讲,所有的utf-8中含有的内容都可以作为标识符
JS中一共有六种数据类型
        String 字符串
        Number 数值
        Boolean 布尔值
        Null 空值
        Undefined 未定义
        Object 对象
        其中String Number Boolean Null Undefined属于基本数据类型
        而Object属于引用数据类型
String字符串
    在JS中字符串需要使用引号引起来

    不加引号就成变量了
    字符串要么全用单引号,要么全用双引号
    引号不能嵌套,双引号不能放双引号,单引号不能放单引号
    用\‘ 代替单引号 用\“代替双引号
    \n表示换行 \t表示制表符
js中所有的数值都是Number类型、
        包括整数或者小数
        Number.MAX_VALUE
        1.7976931348623157e+308
        超过这个值为Infinity为正无穷,infinity就是一个字面量
        NaN表示不是数字Not A Number
        NaN用typeof检查为Number类型
        使用js进行浮点运算,可能得到一个不精确的结果,所以千万不要使用js进行精确度比较高的运算,使用二进制运算分数会有偏差
typeof来检查变量的类型
            typeof 变量
            会返回数据类型
强制类型转换
        指将一个数据类型转换为其他数据类型
        主要是将其他数据类型转换为
        String Number Boolean
        调用被转换数据类型的toString()方法
        调用String()函数,并将被转换的数据作为参数传递给函数
        使用String()函数,做强制转换时,
            对于Number和Boolean实际上就是调用toString()方法
            但是对于null和undefined,就不会调用toString()方法
                它会将null直接转换为"null"
                将undefined直接转换为"undefined"
将其他的数据类型转换为Number
        转换方式一
            使用Number()函数
            1.如果是纯数字的字符串,则直接将其转换为数字
            2.如果字符串中有非数字的内容,则转换为NaN
            3.如果字符串是一个空串或者是一个空串或全是空格的字符串,则转换为0
            4.undefined-->数字NaN
            5.Numberz转稍微有一点别的内容就会转换为NaN
           转换方式二
                123px  123像素
                这种方式专门用来对付字符串
                parseInt() 把一个字符串转换为一个整数,可以把从前往后查的有效整数截取下来
                parseFloat()把一个字符串转换为一个浮点数
                对非String使用它会先转换为String在进行操作
   在js中,表示16进制的数字,则需要以0x开头
        以0开头是8进制
        如果要表示2进制的数字,则需要0b开头
        但是不是所有浏览器都支持
        向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
        ParseInt(a,10);第二个参数可以确定进制
       将其他的数据类型转换为Boolean
        使用Boolean()函数
        除了0和NaN都是ture
        字符串--->布尔
        除了空串,其余的都是ture
        null和undefined都会转换为false
        对象也会转换为ture
 运算符也叫操作符
        通过运算符可以对一个或多个值进行运算
        比如:typeof就是运算符,可以来获得一个值的类型
            它会将该值的类型以字符串的形式返回
            number string boolean undefined object、
          
            算数运算符
                +
                当对非Number类型的值进行运算,会将这些值转换为Number再进运算
                任何值和字符串做运算都会先转换为字符串在进行拼串操作
                -
                除了+之外的运算都会转换为Number在进行运算
                *
                /
                %
   自增
    无论a++还是++a都会立即使原变量的值自增1

    a++后++ 结果为原值
    ++a前++ 结果为自增后的值
    自减 --
     - 通过自减可以使变量在自身的基础上减1
  可以利用逻辑运算将其他数据类型将其转换为Boolean类型
        可以在输出前与上ture或者false就可以控制输出结果
        例如a=!!a的格式
        !非
        &&与
        ||或
        非布尔值的情况
        与运算,如果两个值中都有false,则返回靠前的false
            如果两个都为ture,则返回靠后的ture
        或运算
            如果第一个值为ture,则直接转换为第一个
            如果第一个值为false,则直接返回第二个值
   =
        可以将符号右侧的值赋值给左侧的变量
        例如a+=3等价于a=a+3
        +=
        -=
        /=
        %=
        *= 
 关系运算符可以比较两个值之间的大小关系
        如果关系成立返回ture,如果关系不成立则返回false
        >大于号
        判断符号左侧的值是否大于右侧的
        如果关系成立,返回ture,如果关系不成立则返回false

        非数值情况
        任何值和NaN做任何比较都是false
        对于非数值进行比较时,会将其转换为数字然后在比较
        如果符号两侧都是字符串不会将其转换为数值会比较两个字符串的字符编码Unicode
        字符比较是一位一位进行比较,如果两位一样,则比较下一位
        比较中文没意义,一般比较英文
        在比较两个字符串型的数字时,一定要进行转型
 去查Unicode编码找到对应的符号可用在网页中
        在代码中\u开头配编号
        在<body>标签中用&#编码需要的是10进制
相等运算符用来比较两个值是否相等
        如果相等会返回ture,否则返回false
        使用==来做相等运算
        当使用==来比较两个值
        undefined衍生自null
        所以这两个值做相等判断
        NaN不和任何值u相等
        调用isNaN来判断是不是NaN
        不相等
            不相等也会对变量自动的类型转换

        ===
            全等
            用来判断两个值是否全等,和不等相似,不同的是它它不会做自动类型转换
            如果两个值的类型不同直接返回false
        !==
            不全等
            不做类型转换,undefined和null就不全等
 条件运算符也叫三元运算符
            语法:
            条件表达式?语句1:语句2;
            执行过程
                如果值为ture,则执行语句1,并返回执行结果
                如果该值为false,则执行语句2,并返回执行结果
            如何放非布尔值会转换成布尔值进行运算
  var a=1,b=2,c=3
        可以同时声明多个变量并赋值
        在js中有一个符号优先级的表
        优先级越高,越先算
        如果优先级不清楚可以使用()来改变优先级
在js中可以用{}来为语句分组,要么都执行,要么都不执行
        一个{}中的语句我们叫一个代码块
        js中的代码快,只具有分组的作用,没有其他的作用
        代码块内部的内容在外部完全可见
 switch条件分支语句使用方法
  switch(num){
            case 1:
                console.log("一");
                break;
            case 2:
                console.log("二");
                break;
            default:
                console.log("三");
                break;
        }
  While语句执行时,
        先对条件表达式进行求值判断
        如果值为真执行循环体
        否则终止循环。
        do...while可以保证循环体至少执行一次
 for语句,也是一个循环语句,也称for循环
        for(初始化表达式;条件表达式;更新表达式){
            语句...
        }
math.sqrt()对一个数进行开方
嵌套的for循环
        for里面再加一个for循环
不能在if语句中使用break和continue
        break关键字,会立即终止离他最近的那个循环语句
        continue关键字,可以用来跳过当次循环
          console.time("test");
          console.timeEnd("test");
          可以测试性能,就是执行时间
          test是时间测试器的名称(用字符串来命名)
          break可以提高性能将不需要执行的语句省去。
 单行注释快捷键ctrl+/
        多行注释快捷键shift+alt+a
        js基本数据类型有 number string boolean undefined null   Object(对象)
        基本数据类型都是单一的值"hello" 123 true,
        值和值之间没有任何联系
        在js中表示一个人的信息
        var name="迈欧哦"
        var gender="男"
        var age=18;
        如果使用基本数据类型创建的对象都是独立的,不能成为一个整体
        对象属于一种复合的数据类型,在对象中可以保存多个不同的数据类型的属性
        对象的分类:
            1.内建对象
                -由ES标准中定义的对象,在任何的ES的实现中都可以使用
                -比如:Math String Number Boolean Function Object...
            2.宿主对象,目前来讲主要指由浏览器提供的对象
                比如BOM DOM 
            3.自定义对象
                -由开发人员自己创建的对象
        创建对象
        使用new关键字调用函数,是构造函数constructor
        构造函数是专门用来创建对象的函数
        如果都对象中没有的属性,不会报错而是会返回undefined
     向对象中添加属性
         属性名
            -对象的属性名不要求遵循标识符规范
            但是尽量还是按照标识符的规范去做
            语法:对象[“属性名”]=属性值
            读取也要这样读取
        属性值
         js对象的属性值,可以是任意的数据类型
                甚至也是一个对象   
            in运算符可以检查一个对象是否含有特定的属性
                如果有返回ture,没有返回false
            语法
            console.log("test" in obj);检查obj中有没有test这个属性
        JS中的基本数据类型
            String Number Boolean Null Undefined
        引用数据类型
            Object
            对象是保存到堆内存中的,每创建一个新的对象就会在堆内存中开辟一个新的空间
            而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象的引用
        两个对象长得一摸一样也是两个对象进行比较,比的是内存地址,即使两个对象一摸一样也是返回false
  创建一个对象
        var obj=new Object();
        使用对象字面量来创建一个对象 
        使用对象字面量,可以在创建对象时,直接指定对象中的属性
        语法:{属性名:属性值,属性名:属性值....}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秒¤说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值