Js基本语法(部分通用Auto.Js)

admin
2021-08-24 / 0 评论 / 129 阅读 / 正在检测是否收录...

1. JavaScript(Js) :
JavaScript 是一个脚本语言。但它是一个轻量级,且功能强大的编程语言(Auto.Js则是基于js,支持js部分语法,且最新版已兼容部分node.js API)。
2、注释方式
单行注释 : //
单行注释 : / /
3、简单指令

  1. 变量的声明(注:Js变量声明无需和java一样指定类型)

    1. var 变量名(新手常用声明方式)
    2. let 变量名(与var相比作用域要小,新手不推荐)
    3. const 常量名 (通常用于声明常量。注意:定义的变量的时候,必须同时初始化,且其值之后不可以修改)
var a;//定义但不声明
var a = 1;//定义并声明a=1
let b;
let c =1;//因作用域问题,如果这里在let b 则会报错
  1. alert
    alert("我是一个弹出") : 弹出一个简单的弹窗

3 console.log
console.log("我是输出内容"): 控制台调试输出内容,经常用于调试开发

  1. isNaN 和 Number
    isNaN(number),如果number不是数字,则为true;

Number(number),在转换为数字类型时,若number不是数字,则返回NaN

5.转义字符

r 回车
n 空格
t 缩进
\ 反斜杠

  1. 逻辑判断

|| 或
&& 与
!= 非
== 等于
=== 全等于(内容且类型都相等)

大于等于 >=
<= 小于等于

  1. 运算符优先级

    • / % + - && || ? (Ps: 从左到右优先级越来越高,有括号先运行括号内的)
  2. 类型转换
    parseInt("12a3"); //字符串转为数字,尝试强转;

parseFloat("123.123");
toString方法转字符串 :
data.toString();
String(data);
Json与字符串直接互转 :
var result = JSON.parse("{"a":"擦擦","b":"拉拉"}");//string 转 json
JSON.stringify(result);//json 转 string (result 为 标准 json 数据)
注意 : 变量声明未赋值,其值为undefined;对象为空,其值为null;

  1. 三元运算符
    a>b?a=1:a=2; //判断条件?true的时候执行的操作:false的时候执行的操作
  2. 数组Array
    (1)、定义法

构造函数:
var arr = new Array("123","abc","xxx");
字面量:
var arr = ["123","646","abc"];
数组长度:
var arr = new Array(6);(数组长度为6);
(2)、赋值
arr[0]=1;

  1. 形参和实参
    定义函数时,function funcA(a,b,c){},其中的a、b、c即为形参;

调用函数时,funcA(1,2,3);其中的1、2、3即为实参;
tips:function里面有一个arguments对象,里面存有所有传进函数的实参;

  1. 函数
    (1)、函数命名

1、 可以使用字符、数字、下划线、$;
2、 不能以数字开头;
3、 不能使用关键字和保留字;
4、 区分大小写;
5、 建议要有意义 -- 动词+名字结构;
6、 驼峰命名法;
7、 函数名不能重名,后面写的重名函数会把前面写的函数给覆盖掉;
(2)、函数的返回值
返回值:
(当函数执行完毕之后,所得到的结果就是一个函数返回值,任意函数都有返回值)

1、 在函数内部没有显示的写有return的时候,函数的返回值是undefined;
2、 当函数内部有return,但是return后面没有跟着任何内容或者数据的时候,
函数的返回值是undefined,并且return后面的代码不会执行;

3、 当return后面跟着内容或者数据的时候,函数的返回值就是这个跟着的内容或者数据;
(3)、函数的四种形式:
1、没有参数,没有return;
通常用于封装一段过程;
2、没有参数,有return;
通常用于内部封装引用其他函数(闭包,回调);
3、有参数,没有return;
通常用于执行操作的封装;
4、有参数,有return;
常见形式;
(4)、匿名函数
匿名函数的name属性值为anonymous;
// 函数仅用一次的情况,即用即废;

 setTimeout(function(){
            console.log(this.name);
        },1000);
 //在1秒后在控制台打印出本函数的名称

(5)、回调函数
在一个函数当中,另一个函数作为参数传入该函数中,另一个的这个函数即为回调函数;

  function atack(callback){
            return callback;
        }
 //在调用该函数时,指定callback是哪个函数;
 atack(func);

(6)、短路运算
作用:防止传入函数的数据不足,造成无法运行;

  function getResult(a,b,fn) {
              fn && fn();
          }()
  //通常使用逻辑与的短路来决定是否执行回调函数;
  function getResult_2(a,b){
              a || 0;
          }()
        //通常用逻辑或的短路来防止实参不足的情况,强行赋值;

(7)、自执行函数

(function func2(){
    })()
    // 在函数定义的结束最后写入一个(),该函数定义完成后直接被调用执行;

(8)、递归
在函数执行的最后再一次的调用自身;
注意 : 递归是一种非常耗资源的做法,通常为了简化运算,还会结合缓存进行,递归必须要有结束判断条件(if),否则该函数被调用后就是死循环;

4. 数据类型
(1)、简单数据类型
string、number、boolean
(2)、复杂数据类型
String、Number、Boolean、Array、Math、Date、Obeject、function、RegExp(正则表达式)
(3)、空数据类型

  • Null ---→Null的数据类型会返回一个Object
  • undifined
    tips:用typeof可以进行判断数据类型;

tips:定义的简单数据类型变量,其数据保存在变量中,而复杂数据类型,其变量保存的是数据所在的内存地址;
5. 内置对象
Array、Date、Math、String;
6.(Math)数学对象
向上取整 Math.ceil(number);
向下取整 Math.floor(number);
四舍五入 Math.round(number);
求多个数字之间的最大值 Math.max();
求多个数字之间的最小值 Math.min();
求x的y次幂 Math.pow(x,y);
求正弦值 Math.sin(x);
得到一个数字的绝对值 Math.abs(x);

  /*
       求一个角度的正弦值,要求x必须是一个额弧度值
       角度和弧度的转换公式:
       弧度 = 角度 * 2 * Math.PI / 360;
      */
 Math.sin(30*2*Math.PI/360)

7. (Array)数组对象
(1)、arr1.concat(arr2);
数组拼接,结果为将arr2拼接到arr1的最后;
(2)、arr.join();
数组字符串输出,括号内可以指定元素连接的符号;

  /*
var  arr=["a","b","c","d"];
console.log(arr.join("|"));    // (结果为"a|b|c|d")

(3)、arr.pop();
切除数组的最后一个元素,返回值为该元素;
(4)、arr.slice(start,end)
获取,获取数组的指定片段,start必须有,如果参数为负数则从末尾开始选取;
返回值为该片段组成的,一个新的数组;
(5)、arr.push
添加,用于向数组的末尾添加新的元素,参数可以是多个;
返回值为数组的新长度;
(6)、arr.splice
1、用于向数组中指定的索引添加元素;
arr.splice(2, 0, "William","asdfasdf");
在第2个元素开始,删除的元素个数(可以为0,为0到结尾),
加入元素为"William"、"asdfasdf";
2、用于替换数组中的元素;
arr.splice(2,1,"William");
3、用于删除数组中的元素;
arr.splice(2,2);
(7)、arr.indexOf(element);
查找,在数组中查找element,返回值为索引,如果没有该元素返回-1;
(8)、arr.sort(function);
排序,function为一个函数;

  /*
 function sortNumber(a,b){
                    return a-b;
   }
 arr.sort(sortNumber);  //从小到大排序

tips:如果a-b改成b-a,那么执行的操作为从大到小;
tips:字符串对象(String)的方法与Array的方法类似;

8. (Date)日期对象
date.getTime()
date.getMilliseconds()
date.getSeconds()
date.getMinutes()
date.getHours()
date.getDay()
date.getDate()
date.getMonth()
date.getFullYear()
注意: 该内置对象有很多建议阅读文档 Date对象文档

9. (String)对象

charAt(index)
str[index] // 获取字符串指定位置的字符
concat()  //拼接字符串
slice(start,end)/
substring(start,end)   //截取从start开始,end结束的字符, 返回一个新的字符串,若start为负数,那么从最后一个字符开始;
substr(start,length)   // 截取从start开始,length长度的字符,得到一个新的的字符串
indexOf(char)      // 获取指定字符第一次在字符串中的位置
lastIndexOf(char)  // 获取指定字符最后一次出现在字符串中的位置
trim()   // 去除字符串前后的空白
toUpperCase()
toLocaleUpperCase()  // 转换为大写
toLowerCase()
toLocaleLowerCawse()  // 转换为小写
replace()    //   替换字符串
split()      //分割字符串为数组
//注 : replace 和 split 属于正则
length() // 获取对象的长度

10. 自定义对象(进阶)
对象:无序属性的集合;
特征:属性(key);
行为:方法(value);
js是基于对象的弱类型语言;
继承:基于类,子类可以从父类得到的特征;
工厂模式:定义一个function构造函数,作为对象,要创建对象直接调用该构造函数,加new关键字;
构造函数:定义对象的函数,里面存有该对象拥有的基本属性和方法;
命名首字母大写,this会自动指代当前对象;
访问对象属性:

obj[key];
obj.key;

遍历对象:

    for(key in obj){
       //  key      为属性名;
      //  obj[key]    为属性值(value);
    }

以上内容为目前所想到的,后续遇到会继续补充,不懂得可在下方评论,博主有时间会进行解答........

1

评论 (0)

取消