JSA基础笔记

function myjsa(){
    //开始计时
    console.timeStart();
    vr="JSA,走起!";
    MsgBox(vr);
    //输出计时时间
    console.timelog("执行时间:");
}

注意事项:

  1. JSA的学习资源太少了,网上像样的课程只有几个,写给自己后期备查。
  2. 编程过程中少用MsgBox和Alert提示框尽量少用,调试使用console.log()控制台输出。控制台输出内容较多,可以右击清空或使用console.clear()
  3. 强制断点,debugger

一、函数

  1. 函数构成
  2. 返回值
  3. 参数
  4. const方式声明
  5. 内联函数
  6. 箭头函数

二、变量

  1. var声明变量
    function myBL(){
        var i=1;
        var x=i;			//x=1
        var i=2;
        console.log(x);		//x=1,元变量改变,不改变已赋值的其他变量
        var	[a,b]=[3,4];
        [a,b]= [b,a];		//交换变量
        console.log(a,b);
    }
  2. let声明变量:避免同一作用域 { } 内重复声明,主要用于不同作用域,同样功能名称的局部变量。监视窗口不会显示,不利于调试。
  3. const声明常量:同一作用域 { } 内只能声明一次,不能重复赋值
  4. 全局变量:可以在“立即窗口”中直接使用
  5. 不要在函数中不声明,直接使用变量

三、数据类型

  1. JS不能声明类型, 变量也可以存储任意类型
  2. 基础类型:Number、String、Boolean、Null、Undefined、BigInt
  3. 引用类型:Object、Function、Date日期、RegExp正则、Map键值对、Set不重复集合
  4. 其他类型:NaN,Infinity,-Infinity
  5. 查看数据类型:typeof()

四、数字类型

  1. toString():转为字符串
  2. val(i):字符串转数字(郑提供)
  3. round(i,d):取几位小数(郑提供)

五、字符串类型:索引 0 到 n-1

  1. substring()
  2. slice(开始索引号,位数)切片
  3. substitute():
  4. includes():是否包含字符串
  5. search():查找字符串的位置

六、运算符

  1. 算术运算符:乘方**、取模(余)%(可以用来取小数部分)
  2. 比较运算符:把数值写在前面,等于2==a,不等于2!=b
  3. 逻辑运算符:与&&、或||、非!(主要用于负向描述)
  4. 类型判断:全等于===,主要判断数值与字符串
  5. 三元运算符:条件 ? 真 : 假
    function myYSF(){
        var i=1;
        i++;	//i=i+1,尽量少用,避免遗忘
        console.log(i);
        i+=2	//i=i+2
        console.log(i);
        var j=10; 
        j--;	//j=j-1,尽量少用,避免遗忘
        console.log(j);
        j-=2;	//j=j-2
        console.log(j);
        var x=10,y;
        y=x>5?2:1	//条件x>5 真y=2 假y=1
        console.log(y)
     }
    

七、日期类型

  1. new Date():初始化方式
  2. 月份是从0开始计算,建议用字符串表示
  3. getdate():获取日期
  4. getday():获取星期
  5. (郑提供)日期全部用cdate()转换成OA日期(即Excel编码方式 )再进行操作
  6. (郑提供)日期操作用 扩展函数DateUtils.方法() 进行操作

八、对象

  1. JSA更多使用数组,利用默认对象

九、数组类型(最重要)

  1. 用 [1,2] 表示
  2. 访问数组元素 arr[n]
  3. 添加元素:arr.push()
  4. 删除元素:arr.pop()
  5. 切片(截取部分元素):slice(start,end),不包括第end个元素,从0开始编号,返回新数组
  6. 合并:arr.concat(brr),返回新数组
  7. 替换 / 删除指定位置:arr.splice(start,需要替换元素数量,替换元素),替换元素可以为多个不写替换元素表示删除;如果替换元素为数组,使用 “ ...brrr ” 。
  8. 连接数组内容形成字符串:arr.join("分隔符"),分隔符可不写
  9. 遍历,迭代
  10. 二维数组:转一维数组,arr.flat()

十、逻辑判断if

  1. 不同类型的条件单独作为作为一个变量体现,最后再将相关条件叠加到if中,便于阅读,修改单个条件
  2. if可以进行多层嵌套
  3. 通过if(){}else if(){} else{} 实现多条件判断
    function myPD(){
    	asSheet("业绩").Activate()						//确保运行在对应工作表中
    	var startD=Range("h1").Value2					//找到工作表中开始日期
        var endD=Range("h2").Value2						//找到工作表中截止日期
        for(var i=2;i<=12;i++){
        	var num=Cells(i,2).Value2;					//找到工作表中业绩数据
        	var d=Cells(i,1).Value2;					//找到工作表中日期数据
        	var dayC=d>startD && d<endD;				//时间条件
        	var numC=num>Cells(3,8) && num<Cells(4,8) ;	//数值条件
        	if(dayC && numC){							//条件叠加,便于阅读,修改单个条件
    	    	Cells(i,3).Value2="GOOD";
    	    }else{
    	    	Cells(i,3).Value2="LESS OR MORE";
        	}
        };
        
     }

十一、循环语句for

  1. 快速取得数组:JSA.getNumberArray(起始数,结束数,间距),间距默认为1
  2. 随机打乱数组:JSA.shuffle(arr)
  3. break:跳出本次循环
  4. continue:直接进行下次循环,一般用if语句替代
  5. for of:一般用for each 替代
  6. while:主要用于结果不确定的循环,建议少用。查找不确定表格的行数RngUtils.endRow("a1")
  7. do while:先执行后判断
  8. for each:无数组的情况、遍历过程中无法退出,上述2种情况不能使用。练习——简写、含下标、多行操作、修改99乘法表。

十二、函数

  1. 函数→lambda函数(只内部使用)→匿名函数(内部只使用一次)→箭头(立即)函数
  2. 高级函数
    var arr=[0,1,2,3,4,5,6,7,8,9]
    //some:任一元素满足条件,退出循环
    var rs=arr.some(x=>x>5)
    
    //every:全部满足条件,true;任一元素不满足,就退出循环,返回false;
    var rs=arr.every(x=>x>5)
    
    //find:找到满足条件的元素本身,发现第一个后即退出循环
    var rs=arr.find(x=>x>5 && x%2==1)
    
    //findindex:找到满足条件的元素的索引,发现第一个后即退出循环
    var rs=arr.findindex(x=>x>5 && x%2==1)
    var rs=arr.reverse().findindex(x=>x>5 && x%2==1) //倒序查找,序号为length-n-1

十三、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值