zoukankan      html  css  js  c++  java
  • 11.15

    JavaScript

    是前端的一门编程语言

    注释

    // 单行注释
    /*
    	多行注释1
    	多行注释2
    */
    

    js的引入方式

    1.script标签内部直接书写
    <script>
        alert(123)
    </script>
    
    2.通过script标签src书写,引入外部js文件
    <script src = 'js.js'></script>
    

    js里面的变量

    在js中声明变量需要使用关键字

    var 声明的是全局有效

    let 只在局部有效

    js变量的命名规范

    1. 数字 字母 下划线 $
    2. 不能用关键字作为变量名
    3. 推荐使用驼峰体命名

    js代码默认是以分号作为结束符

    js常量

    const 定义常量,不能被修改

    js中的数据类型

    数值类型 number

    ​ NaN 表示不是一个数字

    字符类型String

    ​ 常用的方法:

    方法 说明
    .length 返回长度
    .trim() 移除空白
    .trimLeft() 移除左边的空白
    .trimRight() 移除右边的空白
    .charAt(n) 返回第n个字符
    .concat(value, ...) 拼接
    .indexOf(substring, start) 子序列位置
    .substring(from, to) 根据索引获取子序列
    .slice(start, end) 切片
    .toLowerCase() 小写
    .toUpperCase() 大写
    .split(delimiter, limit) 分割

    string.slice(start,stop)和string.substring(start,stop)的区别

    两者的相同点:
    如果start等于end,返回空字符串
    如果stop参数省略,则取到字符串末
    如果某个参数超过string的长度,这个参数会被替换为string的长度

    substirng()的特点:
    如果 start > stop ,start和stop将被交换
    如果参数是负数或者不是数字,将会被0替换

    slice()的特点:
    如果 start > stop 不会交换两者
    如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
    如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)

    对象 object

    ​ js中所有的事务都是对象,对象只是带有属性和方法的特殊数据类型

    ​ 数组的常用方法:

    方法 说明
    .length 数组的大小
    .push(ele) 尾部追加元素
    .pop() 获取尾部的元素
    .unshift(ele) 头部插入元素
    .shift() 头部移除元素
    .slice(start, end) 切片
    .reverse() 反转
    .join(seq) 将数组元素连接成字符串
    .concat(val, ...) 连接数组
    .sort() 排序
    .forEach() 将数组的每个元素传递给回调函数
    .splice() 删除元素,并向数组添加新元素。
    .map() 返回一个数组元素调用函数处理后的值的新数组

    布尔值 Boolean

    ​ 区别于python ,true和false都是小写

    undefined

    symbol 表示独一无二的值

    运算符

    算数运算符

    + - * / % ++ --

    x++会先赋值再进行自增1运算,而++x会先进行自增运算再赋值!

    比较运算符

    > >= < <= != == === !==

    == 弱等于,会自动转换数据类型

    === 强等于 不会自动转换

    逻辑运算符

    && || !

    赋值运算符

    = += -= *= /=

    三元运算符

    x=1
    y=2
    res = x>y ? 10 : 20
    如果条件成立返回?后面的,否则返回:后面的
    

    流程控制

    if-else

    var a = 10;
    if (a > 5){
      console.log("yes");
    }else {
      console.log("no");
    }
    

    if-else else-if

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

    switch

    var day = new Date().getDay();
    switch (day) {
      case 0:
      console.log("Sunday");
      break;
      case 1:
      console.log("Monday");
      break;
    default:
      console.log("...")
    }
    

    switch中的case子句通常会加break语句,否则程序会继续执行后续case中的语句

    for

    for (var i = 0 ;i<10;i++){
        console.log(i)
    }
    

    while

    var i = 0;
    while (i < 10) {
      console.log(i);
      i++;
    }
    

    函数

    无参函数

    function f1() {
      console.log("Hello world!");
    }
    

    有参函数

    function f2(a, b) {
      console.log(arguments);  // 内置的arguments对象
      console.log(arguments.length);
      console.log(a, b);
    }
    

    匿名函数

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

    立即执行函数

    // 立即执行函数 书写立即执行的函数,首先先写两个括号()()这样防止书写混乱
    (function(a, b){
      return a + b;
    })(1, 2);
    

    箭头函数

    var f = v => v;
    // 等同于
    var f = function(v){
      return v;
    }
    

    函数中的arguments参数

    相当于将传入的参数全部包含

    函数的全局变量和局部变量

    局部变量

    在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。

    全局变量:

    在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

    变量生存周期:

    JavaScript变量的生命期从它们被声明的时间开始。

    局部变量会在函数运行以后被删除。

    全局变量会在页面关闭后被删除。

    自定义对象

    本质上就是键值对的集合,和python的字典一样,但是js中的对象是通过.属性来得到值的

    Date对象

    创建date对象

    var d1 = new Date();
    console.log(d1.toLocaleString());
    /*date括号内可以不加参数,
    或者参数为日期字符串,
    或者为毫秒数,
    或者是年月日小时分钟秒毫秒*/
    

    date对象的方法

    var d = new Date(); 
    //getDate()                 获取日
    //getDay ()                 获取星期
    //getMonth ()               获取月(0-11)
    //getFullYear ()            获取完整年份
    //getYear ()                获取年
    //getHours ()               获取小时
    //getMinutes ()             获取分钟
    //getSeconds ()             获取秒
    //getMilliseconds ()        获取毫秒
    //getTime ()                返回累计毫秒数(从1970/1/1午夜)
    

    json对象

    json字符串转换成对象

    var obj = JSON.parse(str1)
    

    对象转换成json对象

    var str = JSON.stringify(obj)
    

    RegExp对象

    定义正则表达式的两种方式

    // 定义正则表达式两种方式
    var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
    var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;
    
    // 正则校验数据
    reg1.test('jason666')
    reg2.test('jason666')
    
    /*第一个注意事项,正则表达式中不能有空格*/ 
    
    // 全局匹配
    var s1 = 'egondsb dsb dsb';
    s1.match(/s/)
    s1.match(/s/g)
    var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/g
    reg2.test('egondsb');
    reg2.test('egondsb');
    reg2.lastIndex;
    /*第二个注意事项,全局匹配时有一个lastIndex属性*/
    
    // 校验时不传参数
    var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/
    reg2.test();
    reg2.test(undefined);
    
    var reg3 = /undefined/;
    reg3.test();
    
    RegExp
    
  • 相关阅读:
    Zookeeper 源码(七)请求处理
    Zookeeper 源码(六)Leader-Follower-Observer
    Zookeeper 源码(五)Leader 选举
    Zookeeper 源码(四)Zookeeper 服务端源码
    Zookeeper 源码(三)Zookeeper 客户端源码
    Zookeeper 源码(二)序列化组件 Jute
    Zookeeper 目录
    分布式理论系列(三)ZAB 协议
    分布式理论系列(二)一致性算法:2PC 到 3PC 到 Paxos 到 Raft 到 Zab
    分布式理论系列(一)从 ACID 到 CAP 到 BASE
  • 原文地址:https://www.cnblogs.com/maqiaobin/p/11869134.html
Copyright © 2011-2022 走看看