javascript 笔记

javascript是弱类型语言。

1.结合方式

1.在head标签内直接用 
<script type="text/javascript">
</script>
2.新建一个js文件 xx.js  然后引用 
 <script type="text/javascript" src="hello.js"></script>

2.数据类型

js数据类型分为原始数据类型和对象数据类型。
    js的原始类型  5种
        1 number 数字  不分整型或浮点型
        2 string 字符串  
        3 boolean 布尔 
        4 null  一般人为来赋值为null.  对象数据类型的占位符.
        5 undefined(未定义) null的衍生值. 通常是系统自动赋值.当我们创建一个变量,并且没有初始化.

一些语法:
1. 声明变量, 变量的类型是随时可以变化的,也就是说当变量被赋什么值时,就是什么类型。
2. 声明变量时,也可以不加var。 加var声明,作用范围在代码块中.不加var声明,作用范围为全局
3. js中每行语句的结束使用 ";" 号来表示. 也可以不使用";",但一般都加上。

3.语句

跟java中一样。

4.运算符

1.一元运算符
    + - 是number类型的运算符,当它加在其他数据类型进行运算时,会自动将其他数据类型转化为number类型
2.boolean运算符
    number => boolean   除了+0,-0,NaN  其他都是true.
    string => boolean   字符串不为空,那么其他都是true.
    null => boolean         false
    undefined => boolean false
    Object   => boolean true

3.逻辑运算符
逻辑 AND 运算的运算数可以是任何类型的,不止是 Boolean 值。
如果某个运算数不是原始的 Boolean 型值,逻辑 AND 运算并不一定返回 Boolean 值:

逻辑 AND 运算符(&&)
•   如果一个运算数是对象,另一个是 Boolean 值,返回该对象。 
•   如果两个运算数都是对象,返回第二个对象。 
•   如果某个运算数是 null,返回 null。 
•   如果某个运算数是 NaN,返回 NaN。 
•   如果某个运算数是 undefined,返回undefined。 

•           //1 false&&o  ==>       false
•           //2 true&&o   ==> o ==> true
•           //3 o&&true   ==>       true
•           //4 o&&false  ==>       false
•           //5 o1&&o2   ==>  
•           //6  null&&true == >  null
•           //7 NaN && true == >  NaN
•           //8 NaN&&null   ==>   NaN
•           //9 null&&NaN   ==>   null
•       
•           //10 undefined&&true ==> undefined
•           //11 false&&undefined == > false

逻辑 OR 运算符(||)
与逻辑 AND 运算符相似,如果某个运算数不是 Boolean 值,逻辑 OR 运算并不一定返回 Boolean 值:
•   如果一个运算数是对象,并且该对象左边的运算数值均为 false,则返回该对象。 
•   如果两个运算数都是对象,返回第一个对象。 
•   如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。 
•   如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。 
•   如果某个运算数是 undefined,返回undefined。 

•           //1  false||o  ==> o
•           //2  true||o ==>true
•           //3  o||false == > o
•           //4  o||true == > o
•           //5 o1||o2   ==>o1
•           //6  null||false == > false
•           //7 null||true  ==> true
•           //8 null||undefined ==>undefined
•           //9 undefined||null ==>null

4.数学运算符
    +     :使用+法时, 如果相加的值包含字符串,会自动转换为字符串类型
    - * / :其他数学运算符中,字符串会自动转换为数字

5.关系运算符 > <
    1.两个字符串的比较:字符串的比较规则=>asc码的比对 
        alert("aa">"aaa"); //结果为false
    2.字符串跟数字比较:将字符串转换为数字后进行比较
        alert("2">1);// "2" 转换为 数字2  结果为true

6.等性运算符  
    == !=  :

    执行类型转换的规则如下:
•   如果一个运算数是 Boolean 值,在检查相等性之前,把它转换成数字值。false 转换成 0,true 为 1。 
•   如果一个运算数是字符串,另一个是数字,在检查相等性之前,要尝试把字符串转换成数字。 
•   如果一个运算数是对象,另一个是字符串,在检查相等性之前,要尝试把对象转换成字符串。 
•   如果一个运算数是对象,另一个是数字,在检查相等性之前,要尝试把对象转换成数字。

在比较时,该运算符还遵守下列规则:
•   值 null 和 undefined 相等。 
•   在检查相等性时,不能把 null 和 undefined 转换成其他值。 
•   如果某个运算数是 NaN,等号将返回 false,非等号将返回 true。 
•   如果两个运算数都是对象,那么比较的是它们的引用值。如果两个运算数指向同一对象,那么等号返回 true,否则两个运算数不等。

=== :
    全等于运算符不仅比较数值,还比较类型。类型不同的变量比较为false.

7.三元运算符跟java中一样。
8.赋值运算符跟java中一样。

5.function对象

1.三种创建方法:   (1)function fun1(){};
                (2)var fun2 = function(a,b){}
                (3)var fun3 = new Function("alert('hello3');");

2.js中的函数在调用时,只看函数名称.不看参数.也就是说可以给一个固定参数的的函数传任意个参数。

3.函数里面有一个arguments属性,是一个数组,存储的是传入该函数的实参数。

4.ECMAScript 定义的属性 length 声明了函数期望的参数个数
Function 对象也有与所有对象共享的 valueOf() 方法和 toString() 方法。这两个方法返回的都是函数的源代码,在调试时尤其有用。

Grobal对象

Grobal对象是全局对象,所以在调用其方法是不需要直接写函数名即可。

方法:
1.encodeURI/decodeURI 可以将中文Url编码 例如:  汤姆=>%E6%B1%A4%E5%A7%86
2.encodeURIComponent/decodeURIComponent 转换的范围更大,
    包括一些url中的字符.    & : /
3.parseInt  转换成整数  。 从左到右依次转换.转换到遇到不能转换的字符为止
  parseFloat 转换成浮点数 。从左到右依次转换,遇到字符停止或者遇到第二个小数点停止。
4.isNaN() 判断一个值是否是NaN 
5.eval() 解析运行方法

三大包装类

js中5个原始类型,有3个包装类. => Number String Boolean
js中  有伪对象的概念.原始类型可以直接调用 对应包装类型的属性或函数.

Math对象

主要参考手册使用。

Array对象

1.创建
    var arr1 = [1,2,3,4];
    var arr2 = new Array(1,2,3,4);
    var arr3 = new Array(4); // 如果调用数组构造,只传递一个参数,并且参数的值是数字.那么该值将作为数组初始化长度
2.对象的方法
    pop 弹栈  将0索引 的变量移除并返回
    push 压栈 将一个值放入数组的0索引位置
    reverse 将数组反转 => 会对数组本身顺序进行调整

    sort 排序 => 默认会按照字符串比较的方式排序.而不是数字.
    sort可以传入比较器,根据比较器的比较方法进行比较。 arr1.sort(comparator);
    比较器:
    比较器需要传入两个参数,他们是数组进行比较时,会传入两个值进行比较,
    大于0 表示 a>b , 等于0 相等 ,小于0 a<b
        function comparator(a,b){ 
        return a-b;
        };

3.注意:
    1 数组中元素的类型可以任意,也就是说一个数组中可以存储任意类型的数据
    2 数组的长度是可以随时变化的.

Date对象

参考手册上使用。

RegExp对象

    1 创建
        参数1: 正则表达式
        参数2: 匹配模式. g: 全局  i: 忽略大小写
    (1)var reg1 = new RegExp("e","gi");
    (2)var reg2 = /e/gi;

    2.方法
        test 方法 : 校验 字符串是否能与正则表达式匹配 返回值为boolean类型。


    3.String 与正则结合的 4个方法
    var str = "hello world";
    //split 切割
        alert(str.split(/o/g));
    //replace 替换
        alert(str.replace(/l/g, "a"));
    //match 匹配并获得 , 找不到就返回null
        alert(str.match(/or/g));//or
    //search 查找索引 返回第一次出现该值的位置。
        alert(str.search(/l/g));//2

bom 之 window对象

方法:
    1.  open方法  => 打开一个新的窗口
    参数1: 打开的url
    参数2: 窗口名称=> name属性
    参数3: 窗口的特征=> 长宽(其他属性未必好使)...
    参数4: 是否将新窗口的地址加入到浏览器历史记录中
    返回值: 返回一个window对象. 新打开的窗口的window对象
        window.open(url, windowName, windowFeatures, optionalArg4)      
    2.close 方法  关闭当前窗口。
    3.定时器方法1
     setInterval  设置定时器
     clearInterval 清除定时器
    //-----------------------------------------------
    参数1: 可以是一段string, 内容是js代码 也可以接受一个函数类型的对象
    参数2: 毫秒单位的时间
    返回值: 当前开启的定时器id
    功能: 每个参数2毫秒,执行参数1代码.
        window.setInterval("alert('abc');", 2000)
        window.setInterval(fun1, 2000) //fun1是一个函数
    //-----------------------------------------------
        window.clearInterval(id);

    定时器方法2  
         setTimeout  设置定时器
         clearTimeout 清除定时器
    //-----------------------------------------------
    参数1: 可以是一段string, 内容是js代码 ,也可以接受一个函数类型的对象
    参数2: 毫秒单位的时间
    返回值: 当前开启的定时器id
    功能:参数2毫秒后,执行参数1代码(只执行一次).
    var id = window.setTimeout("alert('abc');", 2000);
    //-----------------------------------------------   
    window.clearTimeout(id);

bom 之 history对象

history.back() - 与在浏览器点击后退按钮相同 
history.forward() - 与在浏览器中点击按钮向前相同 
history.go(num) 方法可加载历史列表中的某个具体的页面。
    num=-1,0或者1 ,分别表示后退,本页面和前进。

bom 之 location对象

assign() 加载新的文档。 
reload() 重新加载当前文档。 
replace() 用新的文档替换当前文档。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值