• JavaScript


    JavaScript基础知识

    # 概述:
    	# ES6就是指ECMAScript 6
    一个完整的JavaScript实现是由以下三个不同部分组成:
    	1. 核心(ECMAScript)
    	2. 文档对象模型(DOM) Document object model(整合js,css,html)
    	3. 浏览器对象模型(BOM) Broswer object model(整合js和浏览器)
    # 引入方式:
    1. Script标签内写代码
    	/* <script> 在这里写代码 </script> */
    2. 引入额外的JS文件
    	/* <script src="js文件地址"></script> */
    
    # JaveScript语言规范
    1. 注释
    // 这个是单行注释
    /*这个是多行注释*/
    2. 结束符
    以 ; 为结束符
    
    

    JavaScript语言基础

    # 变量声明-var
    	1. JavaScript的变量名可以使用_,数字,字母,$组成,不能以数字开头.
    	2. 声明变量使用 var 变量名; 的格式来进行声明. 
    	eg: var name = "Cheer";
    	@注意:
            1. 变量名是区分大小写的.
            2. 推荐使用驼峰体
            3. 保留字不能用作变量名
         # let - for循环很适用
    		1.声明的变量只在let命令所在的代码块内有效,所以for循环很适用
    		eg: for (let i=0,i<10,i++){...}
         # const
    		1.一旦声明,其值就不可以改变
    

    JavaScript数据类型

    # JavaScript拥有动态效果
    	也就是可以往一个变量名上面赋多次不同类型的值.
    # 数值(Number)
    	1. JavaScript不区分浮点型和整型,就只有一种数据类型.
    	2. 还有一种 NaN,标识不是一个数字.
        	eg: parseInt('123') --> 如果是数值就会返回正确的数值
    		    parseInt('abc') --> 这个本身不是数值,所以返回 NaN
    # 字符串(String)
    	var a='hello';
    	var b='word';
    	var c=a+b;
    	console.log(c) --> helloword
    	# 常用方法
    	1. .length--返回长度 --> 类似于python的 len
    	2. .trim()--移除空白 --> 类似于python的 strip()
    	3. .charAt(n)--返回第n个字符 --> 类似于python的字符串索引取值
    	4. .concat(value,...)--拼接 --> 类似于python的"".join()
    		字符串和数值不可以拼接
    	5. .indexOf(substring,start)--子序列位置 --> 类似于python的index()
    		找不到是-1
    	6. .substring(from,end)--根据索引获取子序列 --> 类似于python中根据索引取值
    	7. .slice--切片 --> 类似于python中的中括号切片
    	8. .toLowerCase--小写 --> 类似于python中的lower()转化为小写
    	9. .toUpperCase--大写 --> 类似于python中的upper()转化为大写
        10. .split(delimiter,limit)--分割--> 类似于python中的split()以什么分割
    		delimiter:以什么分割
    		limit:分割几次
    
        # string.slice(start, stop)和string.substring(start, stop):
            1.两者的相同点:
                如果start等于end,返回空字符串
                如果stop参数省略,则取到字符串末
                如果某个参数超过string的长度,这个参数会被替换为string的长度
    
            2.substirng()的特点:
                如果 start > stop ,start和stop将被交换
                如果参数是负数或者不是数字,将会被0替换
    
            3.silce()的特点:
                如果 start > stop 不会交换两者
                如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
                如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)
    
                 slice和substring的区别
        # 反引号+$ 格式化输出
            var a='xc';
            `你好! ${a}` ==> 你好! xc
    
    # 布尔值(Boolean)
    	1. 不同于python的是,true 和 false 都是小写.
    	2. "",0,null,undefined,NaN 都是 false.
        # null 和 undefined
        	1. null 表示值为空,一般在需要指定或清空一个变量时才使用,如 name=null;
    		2. undefined 表示当声明一个变量但是没有初始化的时候,该变量的默认值是 undefined .还有就是函数没有明确返回值的时候,返回的也是 undefined
    		3. null 是自己给的,undefined 只是声明了,但是却没有赋值.
    
    # 对象(Object)
    	JavaScript中的所有事物都是对象: 字符串,数值,数组,函数...此外,JavaScript允许自定义对象.
    	JavaScript提供多个内建对象,比如String,Date,Array等等.
    	# 数组
        	数组对象的作用是:使用单独的变量名来存储一些列的值.类似于python中的列表.
            eg: var a=[123,'asd'];
    			console.log(a[1]); ==> 'asd'
    		# 常用方法
                1 .length	数组的大小
                2 .push(ele)	尾部追加元素
                3 .pop()	获取尾部的元素
                4 .unshift(ele)	头部插入元素
                5 .shift()	头部移除元素
                6 .slice(start, end)	切片
                7 .reverse()	反转
                8 .join(seq)	将数组元素连接成字符串
                9 .concat(val, ...)	连接数组
                10 .sort()	排序
                11 .forEach()	将数组的每个元素传递给回调函数 --> 配合 function(currentValue, index, arr) 一起使用,这个类似于python中的 lambda 匿名函数.
                12 .splice()	删除元素,并向数组添加新元素。 --> 不可以是字符串,只可以是数组的替换.
                13 .map()	返回一个数组元素调用函数处理后的值的新数组 --> 配合 function(currentValue, index, arr) 一起使用,这个类似于python中的 lambda 匿名函数.
    
    # 新的原始的数据类型(Symbol)
    	表示独一无二的值 ,他是JavaScript语言的第七种数据类型
    # 类型查询
    	使用 typeof 查询类型 
    	但是 typeof 是一个元运算符,类似于(++,--,!,-等一元运算符),不是一个函数,也不是一个语句
    
    	对变量或值调用 typeof 运算符将返回下列值之一:
            1. undefined - 如果变量是 Undefined 类型的
            2. boolean - 如果变量是 Boolean 类型的
            3. number - 如果变量是 Number 类型的
            4. string - 如果变量是 String 类型的
            5. object - 如果变量是一种引用类型或 Null 类型的
    

    运算符

    /*只写特殊的*/
    # 算数运算符
    		eg: var x=10;
    			var y=x++;
    			var z=++x;
    	x++: 先把x的值赋值给y,x再进行加1运算
    	++x: 先进性加1运算,最终的值赋给z
    
    # 比较运算符
    	> >= < <= != == === !==
    	"===":强制等于,js是一门弱语言.双等于只判断值是否相同,不判断类型
    # 逻辑运算符
        1. && 与
        2. || 或
        3. ! 非
    # 赋值运算符
    	= += -= *= /=
    

    流程控制

    # if - else
    if (条件){
        代码
    }else{
        代码
    }
    
    # if - else if - else
    if (条件){
        代码
    }else if (条件){
        代码
    }else {
        代码
    }
    
    # switch
    switch (值){
        case 条件:
            代码
    		break
        case 条件:
            代码
            .
            .
            .
        default:
    		代码
    }
    
    # for 
    for (i=0;i<10;i++) {
        代码
    }
    
    # while
    while (条件) {
        代码
    }
    
    # 三元运算
    var a=1;
    var b=2;
    var c=a>b ? a:b
    	判断a是否大于b,如果成立把a赋值给c,如果不成立把b赋值给c
    

    函数

    # 格式
    function 函数名(条件) {
        代码块
    }
    # 格式-补充
    var f = v => v;  
    等同于: var f=function(v) {
        	return v; }
    # 函数中的arguments参数
    函数只能返回一个值,如果要返回多个值,只能放进数组对象中返回.
    arguments 相当于取到了所有的参数
    
    # 函数的全局变量和局部变量
    与python是换了层皮
    # 作用域
    与python一模一样
    

    词法分析

    js中在调用函数的那一瞬间,会先进性词法分析
    过程:
    	- 函数参数
    	- 函数的局部变量
    	- 函数声明
    

    内置对象和方法(里面有json串)

    js也是所有事物都是对象
    # 重点提一下JSON对象
    var str1 = '{"name": "Alex", "age": 18}';
    var obj1 = {"name": "Alex", "age": 18};
    // JSON字符串转换成对象
    var obj = JSON.parse(str1);
    // 对象转换成JSON字符串
    var str = JSON.stringify(obj1);
    
  • 相关阅读:
    OpenMP vs WinSxS
    JIT, dynarec and binary translation
    VC++2010 bug
    控制和释放共享内存块
    分配和释放信号量
    代码列表5.1 (shm.c) 尝试共享内存
    绑定和脱离
    信号量
    每个字段动态添加一个随机数
    最近做了一个红底鞋类电商网站
  • 原文地址:https://www.cnblogs.com/xiongchao0823/p/11677718.html
Copyright © 2020-2023  润新知