• Python 第五十章 js基础


    js 基础

    js代码引入

    方式1:
        <script>
            alert('欢迎来到德玛西亚!')
    
        </script>
    方式2:外部文件引入
    	src属性值为js文件路径
    	<script src="test.js"></script>
    
    

    变量声明

    变量名是区分大小写的。
    推荐使用驼峰式命名规则。首字母大写
    保留字不能用做变量名。
    var a = 1;
    

    数据类型

    数值类型(number)

    示例:
    	var a = 1;
    	var b = 1.1;
    	var c = 123e5;  // 12300000  e5  *10的5次方
    	var d = 123e-5;  // 0.00123
    	typeof a; --- number
    	typeof b; --- number
    

    字符串(string)

    var a = '陈硕男技';
    	typeof a; --- "string"
    

    字符串 转换 数值类型

    parseInt:
        var a = '111';
        var b = parseInt(a);
        typeof b; --- "number"
    parseFloat:
    	var a = '1.11';
    	var b = parseFloat(a);
    
    var a = 'bbbb1';
    var b = parseInt(a);
    	b = NaN  NaN是not a number
    	typeof b; --- number类型  NaN和NaN不相等
    
    字符串相关方法
    字符串拼接
    	var a = "Hello"
    	var b = "world"
    	var c = a + b; 
    	console.log(c); --- Helloworld
    
    .length 查看字符串长度
    	示例:  
    		var c = 'hello';
    		c.length; -- 5
    .trim()  移除两端空格,得到一个新值,不会改变原来的值
    	示例:
    		var a = '   hello   ';
    		var  b = a.trim();
    .trimLeft()
    .trimRight()
    
    .charAt(n)  找到索引为n的字符
    var c = b.charAt(1);
    
    .concat()  字符串拼接
    	示例:
            var a = 'nihao';
            var b = 'girls';
            var c = a.concat(b);
    
    .indexOf() 查看元素的索引
        示例:
    		var a = c.indexOf('a');
    		var a = c.indexOf('i',3);  参数3的意思是从索引3的位置开始往后找,找到就返回对应的索引值,找不到就返回-1
    .slice() 切片
    	示例:
    		var c = "nihaogirls";
    		var a = c.slice(0,5); -- 'nihao'
    
    .toLowerCase() #全部变小写
    .toUpperCase()  #全部变大写
    	示例:
    		var c = "nihaogirls";
    		var a = c.toUpperCase();
    .split() 字符串切割
    	示例:
    		var c = "nihaogirls";
    		var a = c.split('g',1);  'g'是切割条件,1是切割后,返回结果的数量
    
    

    字符串转换为数值

    parseInt('1') -- 1
    parseFloat('1.11') -- 1.11
    

    布尔值

    var a = true;
    var b = false;
    数据类型都有布尔属性:
    	""(空字符串)、0、null、undefined、NaN都是false。
    

    null和undefined

    null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null;
    
    undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。还有就是函数无明确的返回值时,返回的也是undefined。
    	var a; -- undefined
    	
    null表示变量的值是空,undefined则表示只声明了变量,但还没有赋值。
    

    object类型

    var a = 'xx';
    var b = new String('oo');
    
    数组
    var a = [11,22,33];
    typeof a; -- "object"
    
    var b = new Array([11,22,33,44]);
    typeof b; -- "object"
    
    数组常用方法
    var a = [11,22,33];
    索引取值 -- a[0];
    数组长度 -- a.length;
    尾部追加 -- a.push(44);
    尾部删除 -- a.pop()
    	示例:
    		var a = [11, 22, 33, 44];
    		var b = a.pop();
    		结果:
                a -- [11, 22, 33]
                b -- 44
    头部添加 -- a.unshift('aa')
    	示例:
    		 var a = [11, 22, 33];
    		 a.unshift('aa')
    		 a --  ["aa", 11, 22, 33]
    头部删除 -- shift()
    	示例:
    		var a = ["aa", 11, 22, 33];
    		a.shift() -- 'aa'
    		a -- [11, 22, 33];
    
    切片 -- slice()
    	var b = a.slice(0,3);
    	b -- [11, 22]
    反转 reverse()
    	var a = [11,22,33];
    	a.reverse() 
    	a -- [33,22,11]
    
    数组元素拼接 join
    	示例:
    		var a = ['aa','bb','cc'];
    		var b = a.join('_');
    		b -- "aa_bb_cc";
    
    数组合并 concat
    	var a = ["aa", "bb", "cc"];
    	var b = [11,22];
    	var c = a.concat(b);
    	c -- ["aa", "bb", "cc", 11, 22];
    排序 sort 比较尬
    	示例:
    		var a = [12,3,25,43];
    		对a进行升序排列:
    		1 定义函数
    			function sortNumber(a,b){
                    return a - b
                 };
    		2 var b = a.sort(sortNumber)
    		b -- [3, 12, 25, 43]
    	sort 规则:
    		  如果想按照其他标准进行排序,就需要提供比较函数,也就是自己提供一个函数提供排序规则,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:
          若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
          若 a 等于 b,则返回 0。
          若 a 大于 b,则返回一个大于 0 的值。
    
    删除 .splice() 
    	示例:
    		var a = ['aa','bb',33,44];
    		单纯删除:a.splice(1,1)
    		a -- ["aa", 33, 44]
    		
    		删除在替换新元素:
    		var a = ["aa", 33, 44];
    		a.splice(0,2,'hello','world');
    		a --  ["hello", "world", 44];
    	三个参数介绍:
    		参数:1.从哪删(索引), 2.删几个  3.删除位置替换的新元素(可多个元素)
    
    自定义对象 -- python字典
    索引取值
    	var a = {'name':'alex','age':48};
    	键可以不加引号:var a = {name:'alex',age:48};
    	a['age']; -- 48
    	a.age; -- 48
    
    类型查询

    img

    运算符

    算数运算符
    + - * / % ++ --  i++,是i自加1,i--是i自减1   i++的这个加1操作优先级低,先执行逻辑,然后再自加1,而++i,这个加1操作优先级高,先自加1,然后再执行代码后面的逻辑
    
    示例:
    	var a = 100;
    	a++;或者++a; -- 101 a自增1
    
    	a++和++a的区别,示例:
    	var a = 102;
    	a++ == 102; -- true
    	a -- 103;
    	++a == 103; -- false
    	a -- 104;
    
    
    比较运算符
    > >= < <= != == === !==
    
    ==(弱等于)和===(强等于)两者的区别:
    	示例:
    		var a = 11;
    		var b = '11';
    		a == b -- true
             a === b; -- false
    
    
    逻辑运算符
    && || !  #and,or,非(取反)!null返回true
    示例:
    	var a = true;
        var b = true;
        var c = false;
        a && b; -- true
        a && c; -- false
        a || c; -- true
        !c; -- true
    
    赋值运算符
    = += -= *= /= 
    示例: n += 1其实就是n = n + 1
    

    流程控制

    if判断

    简单if-else判断
    	var a = 4;
    	if (a > 5){
            console.log('a大于5');
    
        }
        else{
            console.log('小于5');
        };
    
    多条件判断
    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 a = 1;
    	switch (a++){ //这里day这个参数必须是一个值或者是一个能够得到一个值的算式才行,这个值和后面写的case后面的值逐个比较,满足其中一个就执行case对应的下面的语句,然后break,如果没有加break,还会继续往下判断
            case 1:
                console.log('等于1');
                break;
            case 3:
                console.log('等于3');
                break;
            default:  case都不成立,执行default
                console.log('啥也不是!')	
    
        }
    	
    
    

    for循环

    for (var i=0;i<10;i++) {  //就这么个写法,声明一个变量,变量小于10,变量每次循环自增1,for(;;){console.log(i)};这种写法就是个死循环,会一直循环,直到你的浏览器崩了,就不工作了,回头可以拿别人的电脑试试~~
      console.log(i);
    }
    循环数组:
    var l2 = ['aa','bb','dd','cc']
    方式1
    for (var i in l2){
       console.log(i,l2[i]);
    }
    方式2
    for (var i=0;i<l2.length;i++){
      console.log(i,l2[i])
    }
    
    循环自定义对象:
    var d = {aa:'xxx',bb:'ss',name:'小明'};
    for (var i in d){
        console.log(i,d[i],d.i)  #注意循环自定义对象的时候,打印键对应的值,只能是对象[键]来取值,不能使用对象.键来取值。
    }
    
    
    

    while循环

    var i = 0;
    var a = 10;
    while (i < a){
    	console.log(i);
    	if (i>5){
    		continue;
    		break;
    	}
    	i++;
    };
    

    三元运算

    var c = a>b ? a:b;  
    

    函数

    定义函数

    普通函数
    function f1(){
    	console.log('111');
    }
    f1();  执行函数
    
    带参数的函数
    function f1(a,b){
    	console.log('111');
    }
    f1(1,2);
    
    带返回值的函数
    function f1(a,b){
    	return a+b;
    }
    f1(1,2); -- 3
    
    返回值不能有多个
    function f1(a,b){
    	return a,b;
    }
    f1(1,2); -- 2
    function f1(a,b){
    	return [a,b];  想要多个返回值,需要换一种数据类型
    }
    f1(1,2); -- [1, 2]
    
    匿名函数:
    	var f1 = function(){
            console.log('111');
        }
        f1();
    
    自执行函数
        (function(a,b){
            console.log(a+b);
        })(1,2);
    

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

    局部变量:
    
    	在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
    
    全局变量:
    
    	在函数外声明的变量是*全局*变量,网页上的所有脚本和函数都能访问它。
    
    变量生存周期:
    
        JavaScript变量的生命期从它们被声明的时间开始。
    
        局部变量会在函数运行以后被删除。
    
        全局变量会在页面关闭后被删除。
    

    作用域

    首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。
    
    var city = "BeiJing";
    function f() {
      var city = "ShangHai";
      function inner(){
        var city = "ShenZhen";
        console.log(city);
      }
      inner();
    }
    f();  
    
    
    var city = "BeiJing";
    function Bar() {
      console.log(city);
    }
    function f() {
      var city = "ShangHai";
      return Bar;
    }
    var ret = f();
    ret();
    
    闭包:
    	var city = "BeiJing";
        function f(){
            var city = "ShangHai";
            function inner(){
                console.log(city);
            }
            return inner;
        }
        var ret = f();
        ret();
    
    

    面向对象

    function Person(name){
    	this.name = name;
    };
    
    var p = new Person('taibai');  
    
    console.log(p.name);
    
    Person.prototype.sum = function(a,b){  //封装方法
    	return a+b;
    };
    
    p.sum(1,2);
    3
    

    date对象

    //方法1:不指定参数
    var d1 = new Date(); //获取当前时间
    console.log(d1.toLocaleString());  //当前2时间日期的字符串表示
    //方法2:参数为日期字符串
    var d2 = new Date("2004/3/20 11:12");
    console.log(d2.toLocaleString())
    
    常用方法
    var d = new Date(); 
    使用 d.getDate()
    //getDate()                 获取日
    //getDay ()                 获取星期 ,数字表示(0-6),周日数字是0
    //getMonth ()               获取月(0-11,0表示1月,依次类推)
    //getFullYear ()            获取完整年份
    //getHours ()               获取小时
    //getMinutes ()             获取分钟
    //getSeconds ()             获取秒
    //getMilliseconds ()        获取毫秒
    //getTime ()                返回累计毫秒数(从1970/1/1午夜),时间戳
    
    
  • 相关阅读:
    [LintCode] Longest Substring Without Repeating Characters
    [LeetCode] 416. Partition Equal Subset Sum 相同子集和分割
    [LintCode] Reverse Linked List 倒置链表
    [LintCode] Median of Two Sorted Arrays 两个有序数组的中位数
    [LeetCode] 415. Add Strings 字符串相加
    [LintCode] Longest Consecutive Sequence 求最长连续序列
    [LeetCode] 411. Minimum Unique Word Abbreviation 最短的独一无二的单词缩写
    [LeetCode] 410. Split Array Largest Sum 分割数组的最大值
    [LeetCode] Longest Palindrome 最长回文串
    [LeetCode] Valid Word Abbreviation 验证单词缩写
  • 原文地址:https://www.cnblogs.com/zhangshan33/p/11534456.html
Copyright © 2020-2023  润新知