zoukankan      html  css  js  c++  java
  • JavaScript

    引入方式

    1.在body内的<script>中写js代码

    <script>
      alert('骑士计划!')    alert  弹窗  打开网页时会弹出提示窗口
    </script>

    2.外部链接

    将写好的js文件引入

    <script src="test.js"></script>

    注释

    // 这是单行注释
    
    /*
    这是
    多行注释
    */

    数据类型

    数值 number

    不区分整型和浮点型

    parseInt()   将括号内的内容转换成数值类型

    parseInt('123');
    ---->123
    
    parseInt('abc');      
    ---->NaN              # NaN,表示不是一个数字(Not a Number),也就是说是一个值,但不是数字

    字符串  string

    字符串方法

    .length 返回长度
    .trim() 移除空白
    .trimLeft()    移除左边的空白
    .trimRight() 移除右边的空白
    .charAt(n) 通过索引查找元素,超过最大值返回''空字符串
    .concat() 拼接
    也可以通过 + 来进行字符串拼接
    .indexOf(,索引) 子序列位置,从索引几开始找,没有返回-1
    .slice(start, end) 切片 顾头不顾尾
    .toLowerCase() 小写
    .toUpperCase() 大写
    .split('', 元素个数) 分割 第一个参数为指定以什么分割,第二个可以指定最终结果显示几个值

    布尔值   Boolean

    true和flase都是小写

    ""(空字符串)、0、null、undefined、NaN都是false

    object   对象

    null       空        需要指定或情况一个变量时使用

    array    数组    [1,2,3]    类似于python 的列表

    object   自定义对象   {'name':'alex',gender:male}  类似于python的字典,键可以不加引号

    以上三种类型打印typeof数据类型 都是object

    数组方法:
    .length 数组的大小 .push() 尾部追加元素 .pop() 删除尾部元素,得到删除的值 .unshift() 头部插入元素 .shift() 头部移除元素 .slice(1,4) 切片 .reverse() 反转 会改变原数组 .join() 将数组元素连接成字符串 .concat() 两个数组合并,得到一个新数组,原数组不变 .splice() #参数:1.从哪删(索引) 2.删几个 3.删除位置替换的新元素(可多个元素) .sort() 排序 如果对数字进行排序,会把数字都转换成字符串,按照字符编码的顺序进行排序 如果想要正确的排序,需要写函数: function sortNumber(a,b){ return a - b #升序 降序为b-a } var arr1 = [11, 100, 22, 55, 33, 44] arr1.sort(sortNumber)
    自定义对象方法:
    d.name             通过键取值
    d['gender']        通过键取值

    运算符

    算数运算符

    +

    -

    *

    /

    %

    ++        自加1 i++操作优先级低,先执行逻辑,再加1 ++i操作优先级高,先加1,再执行逻辑

    --          自减1

    比较运算符

    >

    >=

    <

    <=

    ==      弱等于    不比较类型

    ===    强等于    比较

    !=       弱不等于

    !==     强不等于

    逻辑预算符

    && and

    || or

    ! 非

    赋值运算符

    =

    +=

    -=

    *=

    /=

    流程控制

    if--else

    if --else if--else      多条件

    if (a > 5) {
    console.log("a>5");
    }else if (a < 5){
    console.log("a < 5");
    }else {
    console.log("a = 5");
    };

    switch   切换

    switch (10){           括号内必须是一个值或者是能够得到一个值的算式
        case 10:
            console.log("10")
            break         case子语句中一般都会有break,不然会一直向下运行到结束
        case 20:
            console.log("20")
            break
        default:         以上条件都不满足的情况下运行,相当于else
            console.log("unknow")
    };

    for循环

    # 打印0--9
    for (var i=0;i<10;i++) {      #  i++优先级低,会先执行逻辑,再加1
    console.log(i);
    }
    # 循环数组
    方法一:
    var l1 = [11,22,33,44,55]
    for (var i in l1) {
    console.log(i,l1[i]);            i是索引,通过索引把每个元素再打印出来
    };
    
    方法二:
    for (var i=0;i<l1.length;i++){            
    console.log(i,l1[i]);
    };

    while 循环

    # 打印0--9
    var i = 0;
    while (i < 10) {
    console.log(i);
    i++;
    };

    三元运算

    var a = 1;
    var b = 2;
    var c = a > b ? a : b       如果a>b,返回a,否则返回b

     函数

    普通函数

    function f2(a,b) {          定义函数,a,b为形参
    console.log(a,b);
    };
    f2(1,2)                     调用函数,给a,b传参
    
    function sum(a,b) {
    return a+b;                 返回值  在js中,返回值只有一个,默认返回最后一个值,可以以数组的形式返回多个值
    };
    sum(1,2)

    匿名函数

    var sum = function(a, b){
    return a + b;
    };
    sum(1,2)

    自执行函数

    (function(a,b) {            不需要函数名,将函数整体放在括号里
    return a + b;
    })(1,2);                    在最后加括号,如果需要传参,将参数写在括号内

    全局变量和局部变量

    在函数内声明的变量就是局部变量,只能在函数内部访问 在函数运行结束后删除

    在函数外声明的变量就是全局变量,网页上所有函数都能访问 在页面关闭后删除

    作用域

    先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层

    1.
    var city = "BeiJing"; function f() { var city = "ShangHai"; function inner(){ var city = "ShenZhen"; console.log(city); } inner(); } f(); #ShenZhen
    2. var city = 'beijing'; function j() { console.log(city); } function f() { var city = 'shanghai'; return j; } var ret = f(); ret(); #beijing 3. var city = "BeiJing"; function f(){ var city = "ShangHai"; function inner(){ console.log(city); } return inner; } var ret = f(); ret(); #ShangHai

    对象

    创建对象

    var person = new Object();     创建一个person的自定义对象  类似字典
    person.name = 'alex';          给对象封装属性 
    person.age = 18; 

    面向对象

    构造函数,命名的首字母要大写,实例化的时候使用new关键字进行实例化

    function Person(name){
        this.name=name
    }
    Person.prototype.func1 = function(){      使用prototype添加方法
        console.log(this.name,'爱编程!')
    }
    var p1 = new Person('alex');              实例化对象  使用new  传参给name
    p1.func1();                               方法和属性只能通过对象来调用,不能使用类名来调用

    map

    类似于对象,也是键值对的集合,'键'可以是各种类型的值

    var m = new Map();
    var o = {p: "Hello World"}
    
    m.set(o, "content"}               o作为键,m作为值
    m.get(o)                          取值
    m.has(o)                          #true  判断有没有
    m.delete(o)                       #true  删除键值对
    m.has(o)                          #false  此时再判断会返回false

    Date对象

    var d1 = new Date();               # 获取当前时间
    console.log(d1.toLocaleString());  # 打印当前时间日期的字符串形式
    
    var d2 = new Date("2004/3/20 11:12");   #设置特定时间
    console.log(d2.toLocaleString());
    Date对象方法:
    var d = new Date(); 
    getDate()                 获取日
    getDay ()                 获取星期 ,数字表示(0-6),周日数字是0
    getMonth ()               获取月(0-11,0表示1月,依次类推)
    getFullYear ()            获取完整年份
    getHours ()               获取小时
    getMinutes ()             获取分钟
    getSeconds ()             获取秒
    getMilliseconds ()        获取毫秒
    getTime ()                返回累计毫秒数,时间戳

    JSON对象

    var str1 = '{"name": "chao", "age": 18}';    定义字符串
    var obj1 = {"name": "chao", "age": 18};      定义对象
    var obj = JSON.parse(str1);                  将字符串转换成对象
    var str = JSON.stringify(obj1);              将对象转换成字符串

    RegExp对象   正则

    创建正则对象
    方式1:
    参数1 正则表达式(不能有空格)
    参数2 匹配模式:常用g(全局匹配)和i(忽略大小写)
    var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9_]{5,11}$");  规定用户名以字母开头,以字母,数字,下划线组成,且总长度在6--12位之间
    reg1.test('ac2345');     # true
    
    方式2:以//包裹条件
    var reg2 = /^[a-zA-Z][a-zA-Z0-9_]{5,11}$/; 
    reg2.test('bder34');     # true
    注意:如果你直接写一个reg2.test(),test里面啥也不传,默认传的是一个undefined,会返回一个true
    var s2 = 'hello world';
    s2.match(/o/g);         # ["o", "o"]    全局匹配s2中的o元素
    s2.search(/h/g);        # 0   匹配h的索引,找到第一个元素就返回
    s2.replace(/o/g, "s");  # "hells wsrld"    将所有的o替换为s

    Math对象

    不需要new来创建对象,直接使用.的方法

    方法:
    Math.abs(x)   返回数的绝对值
    exp(x)        返回 e 的指数
    floor(x)      小数部分进行直接舍去
    log(x)        返回数的自然对数(底为e)
    max(x,y)      返回 x 和 y 中的最高值
    min(x,y)      返回 x 和 y 中的最低值
    pow(x,y)      返回 x 的 y 次幂
    random()      返回 0 ~ 1 之间的随机数
    round(x)      把数四舍五入为最接近的整数
    sin(x)        返回数的正弦
    sqrt(x)       返回数的平方根
    tan(x)        返回角的正切
  • 相关阅读:
    使用PDO连接数据库
    ES6 promise
    弹框小三角
    封装弹窗功能
    css3 省略号
    使mac支持NTFS读写问题
    Vue 打包 build 前需要修改哪些配置和路径
    eslint配置大全
    在elementUI中使用 el-autocomplete 实现远程搜索的下拉框
    element-UI table自定义表头
  • 原文地址:https://www.cnblogs.com/sandy-123/p/10554255.html
Copyright © 2011-2022 走看看