• day 45 小结


    ------------恢复内容开始------------

    js的引入方式

    ​ 1.内联式: script标签内部直接写

    <script>
    	alert('页面加载中!')
    </script>
    

    ​ 2.外联式: 通过script标签src书写 引入外部js文件

    <script src="js/my.js">
        /*不要再此写JS代码,原因是用来引入外部js文件的script标签,标签内部书写的js代码不起作用*/
    </script>
    

    ​ 3.行间式: 写在全局属性中

    <div onclick="alert('点击我完成页面交互!')">
        点我
    </div>
    

    注释:

    //单行注释
    
    /*
    多行注释
    */
    

    js里面的变量

    ​ 在js中声明变量需要使用关键字
    ​ var 声明的是全局有效
    ​ let 可以只在局部有效(ES6新语法)

    var name = 'json'
    let name = 'json'
    

    ​ js中变量的命名规范
    ​ 1.数字 字母 下划线 $
    ​ 2.不能用关键字作为变量名
    ​ 3.推荐使用驼峰体命名
    ​ python推荐使用下划线(c++)
    ​ user_name

    ​ js推荐使用驼峰体(前端)
    ​ UserName

    ​ js代码默认是以分号作为结束符(你不写通常情况下没有问题)

    ​ 注意: 变量名是区分大小写的

    ​ const 用来声明常量, 一旦声明, 其值就不能改变

    const PI = 3.1415926
    
    PI = 3
    //Uncaught TypeError: Assignment to constant variable.
    

    ​ JavaScript 拥有动态类型

    var	x;	//此时x是undefined
    var x = 1;	//此时x是数字
    var	x = "jason";	//此时x是字符串
    typeof(x);	//string
    

    ​ typeof(x) 用来查看js数据类型

    ​ console.log(x) 用来打印

    数值类型

    ​ JavaScript不区分整型和浮点型 就一种数字类型

    var a = 12.34;
    var b = 20;
    var c = 123e5;	//12300000
    var d = 123e-5;	//0.00123
    

    ​ 还有一种NaN 表示不是一个数字(Not a Number)

    parseInt("123");	//123
    parseInt("ABC");	//返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
    parseFloat("123.456");	//123.456
    

    字符串

    var a = "hello";
    var b = "word";
    var c = a + b;
    console.log(c);	//helloword
    

    常用方法:

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

    ​ 拼接字符串一般用"+"

    布尔值

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

    var a = true;
    var b = false;
    

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

    ​ null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;

    ​ undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明 确的返回值时,返回的也是undefined。

    ​ null表示变量的值是空(null可以手动清空一个变量的值,使得该变量变为object类型,值为null), undefined则表示只声明了变量,但还没有赋值。

    数组

    ​ python中往类表中添加数据的方法

    ​ 1.append 尾部追加

    l = [1,2]
    				l.append([1,2,33,4])
    				l = [1,2,[1,2,33,4]]
    

    ​ 2.insert 按照索引插入

    ​ 3.extend 扩展列表

    ​ 内部其实就是for循环+append

    l = [1,2]
    				l.extend([1,2,3,4])
    				l = [1,2,1,2,3,4]
    

    ​ 可以使用以下方式遍历数组中的元素:

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

    运算符

    算数运算符

    + - * / % ++ --
    var x=10;
    var res1=x++;
    var res2=++x;
    
    res1;
    10
    res2;
    12
    //	其中x++表示先将x赋值再自增1,++x表示先自增1再赋值
    

    比较运算符

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

    由于js是弱类型语言,所以存在强制类型转换

    1 == “1”  // true  弱等于
    1 === "1"  // false 强等于
    //上面这张情况出现的原因在于JS是一门弱类型语言(会自动转换数据类型),所以当你用两个等号进行比较时,JS内部会自动先将
    //数值类型的1转换成字符串类型的1再进行比较,所以我们以后写JS涉及到比较时尽量用三等号来强制限制类型,防止判断错误
    

    逻辑运算符对比:

    Python Javascript
    and &&
    or ||
    not !

    流程控制

    if-else if-else

    ()中写条件,{}中写函数体

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

    switch

    case后只能加整型和字符串类型

    冒号,分号和break不能省略,

    代码运行会找到匹配的case值,然后向下执行,所以一定要有break

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

    for

    ()中写条件,{}中写函数体

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

    while

    ()中写条件,{}中写函数体

    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;三元运算可以嵌套使用;
    var a=10,b=20;
    var x=a>b ?a:(b=="20")?a:b;
    x
    10
    

    定义函数

    python后端定义函数
    def
    js前端定义函数
    function

    普通函数

    function f1 (){
    	console.log("jason");
    }
    

    带参数函数

    function f2(a,b){
        console.log(arguments);
        console.log(arguments.length);
        console.log(a,b);
    }
    

    带返回值的函数

    function sum(a,b){
        return a + b;
    }
    
    //匿名函数
    var sum = function(a,b){
        return a + b;
    }
    sum(1,2);
    

    立即执行函数 书写立即执行的函数,首先先写两个括号()()这样防止书写混乱

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

    ES6中允许使用' => ' 定义函数

    //箭头函数
    		var f = v => v;
    		// 等同于
    		var f = function(v){
    		  return v;
    		}
    		
    		var sum = (num1, num2) => num1 + num2;
    		// 等同于
    		var sum = function(num1, num2){
    		  return num1 + num2;  //这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中
    		}
    

    函数中的arguments参数

    function add(a,b){
      console.log(a+b);
      console.log(arguments.length); console.log(arguments[0]);
    //arguments相当于将出传入的参数全部包含,这里取得就是第一个元素1
    }
    

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

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

    全局变量

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

    变量生存周期

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

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

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

    作用域

    ​ 首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。与python作用域关系 查找一模一样!

    js对象

    ​ JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...此外,JavaScript 允许自定义 对象。

    ​ JavaScript 提供多个内建对象,比如 String、Date、Array 等等。

    ​ 对象只是带有属性和方法的特殊数据类型。

    ​ 在定义对象的时候 关键字是 new

    		python后端               		前端js
    		json.dumps                     JSON.stringify
    		json.loads                     JSON.parse
    

    Date对象

    //创建不指定参数
    var d1 = new Date();
    console.log(d1.toLocaleString());
    
    
    //参数为日期字符串
    var d2 = new Date("2004/3/20 11:12");
    console.log(d2.toLocaleString());
    var d3 = new Date("04/03/20 11:12");
    console.log(d3.toLocaleString());
    
    //参数为毫秒数
    var d3 = new Date(5000);
    console.log(d3.toLocaleString());
    console.log(d3.toUTCString());
    
    //参数为年月日小时分钟秒毫秒
    var d4 = new Date(2004,2,20,11,12,0,300);
    console.log(d4.toLocaleString()); //毫秒并不直接显示
    

    RegExp对象

    ​ Reg 正则
    ​ Asyn 异步

    		// 定义正则表达式两种方式
    		var reg1 = new RegExp("^[a-zA-Z][a-zA-Z0-9]{5,11}");
    		var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/;  建议使用
            //注意: 不能随即添加空格
    

    全局匹配

    var s1 = 'egondsb dsb dsb';
    s1.match(/s/)
    s1.match(/s/g)
    var reg2 = /^[a-zA-Z][a-zA-Z0-9]{5,9}$/g	//当使用/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();
    

    注意: 不使用" /g ",每次光标刷新至文本开头

    ​ 可使用 `reg2.lastIndex 来查看光标位置

    ------------恢复内容结束------------

  • 相关阅读:
    shell中括号的特殊用法 linux if多条件判断
    uboot kernel 博客
    meson 中调用shell script
    200. 岛屿数量
    9. 回文数
    53. 最大子序和
    394. 字符串解码
    32. 最长有效括号
    leetcode排序的题 912. 排序数组 215. 数组中的第K个最大元素
    c++引用和运算符重载思考
  • 原文地址:https://www.cnblogs.com/LZF-190903/p/11879039.html
Copyright © 2020-2023  润新知