JavaScript 新手必备知识
概念
JavaScript 就是脚本,让用户和页面进行交互。
JS 中有很多的数据类型,且它用来接收的数据类型并不是其本身。
⭐因为 JS 是弱语言类型,就是在开辟内存空间的时候,不规定其将来存储的数据类型,所以可以存放任意的数据类型⭐
而 JAVA 是强语言类型,在开辟内存空间的时候以及规定死了其存储的数据类型,将来存储的时候只能存储相应的数据类型。
JS中的数据类型:
int:NaN 是一个数字的数字类型,常在String转int型失败时出现。
⭐任何类型 + NaN 结果总是 NaN⭐。
注意,NaN隶属于int类型!!!
boolean
string
null
undefind(如果一个变量给定初始类型显示此值:未定义)
在我们定义的时候,有三种接收的数据类型:
let:块级域变量,且不存在变量提升,不能在同一块级中重复申请
var:全局变量,即使在域中声明,也是全局变量
const:块级域常量,定义类型后不能重写,但是可以在对象和数据中新增数据,因为其是⭐内存存储⭐的
JS中关于运算符的介绍
一元运算符:++ --,+,-
自增自减,没有问题,但是在 + 号这边,我们需要讲一下:
比如: let a = "1" + 1;
那么这个 “1” 就会被自动解析转换为int类型,根据其⭐字面值⭐转换而不是 ASCII 码。结果为2
但是如果像这样:let a = "a" + 1;
预期结果是 97+1 = 98,而是转换为 NaN 类型,因为 “a” 字面值就是 a ,所以会转换为 NaN 类型。
boolean --> int; false:0,true:1;
比较运算符:===
JS中的== ,是 === ,这个叫全等于,⭐会先根据类型比较,如果类型不一致,那么结果就是 false⭐
如果类型都是字符串,那么会按照⭐字典法排序⭐,按位比较大小。
逻辑运算符:&& || !
三元运算符:a = b > c ? b : c;
这个是比较大小的,B>C则返回B,否则返回C
流程控制语句
和JAVA没有什么区别,唯一要注意的就是 switch(里面可以接收任意的类型);
下面说一下关于各种类型转–>boolean类型转换的问题
int:0或NaN–>false,其他–>true
string:""–>false,其他–>true
null/undefined:都为–>false
对象:都为–>true
到这里,我们基本的理论概念就介绍完了。
我们先讲一下 JS 的创建的方式及规则
像 JS 的标签,我们可以定义在HTML中的任何地方,且没有定义数量的限制,但是有执行优先级,根据其先后顺序执行。
<script type="text/javascript"></script> /// 这个是定义的方式,内部JS,直接在标签体中写代码即可
<script type="text/javascript" src="导入JS文件的路径"></script> /// 这个导入外部的JS
下面我们讲 JS 内置对象。
JS的内置对象有很多,我们只挑几个比较常用的。
function(){}:这个是非常重要的内置对象,因为后面所有需要绑定的事件、方法都需要用这个进行创建
Array:这个是数组对象,和Java中的数组类似。
Date:日期对象,基本和JAVA一样
Math:数学的基本对象。
RegExp:正则表达式对象,这个比较重要!!!
Global:全局编码对象,比较重要!!!
⭐Function 对象⭐
创建方式,注意,不能放在 windows.onloda(){} 方法体中哦~
function fun(){方法体};
第一种
fun = function(){};
第二种
如果我们需要调用方法,直接写 fun(); 就OK了。
我们可以 fun().length,获取的是形参个数
相较于Java语法:
我们不用定义返回值类型,也不需要返回值。
并且()里面的形参类型,我们不用写。()中会有一个隐藏的形参 arguments,封装所有的形参列表。
JS中的方法没有重写,如果同名了,那么写在底下的方法会覆盖上面的方法
⭐Array 对象⭐
创建方式
let arr = new Array(元素列表); // 记得元素列表用 "", 隔开
let arr = new Array(默认长度); // 里面可以定义数组的长度,然后通过方法一个个添加。
let arr = [元素列表]; // 这个直接省略了 new Array 的过程。
关于里面的方法:
push(); 就是在数组的末尾添加一个元素。
pop(); 出栈,删除(弹出)最后面的元素。
join(","); 用逗号将数组中的元素进行分隔,并返回一个字符串。注意,逗号是我自己命名的,里面可以自己更换。
属性:
arr.length; 数组的长度
特点:
数组里面的结构就类似于一个 栈。
JS数组的大小是可变的,很灵活。
JS数组中存储的元素不是固定的,可以是任意的。
⭐Date 对象⭐
创建方式
let date = new Date(); // 返回一个日期对象:Tue Mar 16 2021 14:09:05 GMT+0800 (中国标准时间)
因为 Date 对象默认的返回类型不是我们能看的懂的,所以下面有几法进行转码
date.toLocaleString(); // 返回一个本地日期格式的字符串:2021/3/16 下午2:11:01
date.toLocaleDateString(); // 返回一个像 Java 定义的Date类型的字符串。我们可以用这个给后台,好进行格式转换:Tue Mar 16 2021
date.getTime(); // 返回时间的毫秒值(从1979.1.1 00:00:00开始计算),我们也可以传输这个给后台,进行格式的转换,比较推荐
⭐Math 对象⭐
因为Math对象里面的方法大都是静态的,所以我们不需要进行创建
方法:
random(); // 返回0-1之间的随机数,含0不含1。 Math.random() * (max - min) + min; 获取的值 min<= 值 < max。可以用来获取指定范围的随机数。
floor(int x); // 向下取整。如 4.9 获取的值就是 4
ceil(int x); // 向上取整。如 4.1 获取的值就是 5
round(int x); // 将 x 四舍五入。
属性:
PI; 获取 PI;
⭐RegExp 正则表达式对象⭐
关于正则表达式,我们先要介绍其基本规则。
正则表达式:定义字符串的组成规则
关于单个字符:
\d:单个数字字符[0-9]
\w:单个单词字符,一般用于校验[0-9/a-z/A-Z/_]
我们也可以麻烦一点,自己手写规则,如 \w,我们可以在正则表达式中写 [0-9] ,也是没有问题的,下面会讲如何创建。
关于量词符号:
?:表示出现0次或1次
*:表示出现0次或多次
+:表示出现1次或多次
{m,n}:输入的值必须 <= n 且 <= m
开始符号及结束符号
^:开始
$:结束
创建正则表达式
let reg = new RegExp("正则表达式"); // 一般不用这个创建
let reg = /^\w{6,12}$/ // 意思是 里面的值必须在 [0-9a-zA-Z-_] 之间,且长度必须大于 6 且 小于 12。
reg.test("需要校验的字符串"); // 返回一个boolean类型,用于检验里面的字符串是否符合正则表达式定义的规则
⭐Global⭐
特点:全局对象,不需要对象名就可以直接调用了。
方法:
关于URL编码,就是将中文字符转为16进制,用 % 隔开
encodeURI("需要进行编码的数据"); // URL编码,只可以对中文进行编码
decodeURI("需要进行解码的数据"); // URL解码,只可以对中文进行解码
encodeURLComponent("需要进行编码的数据"); // URL编码,可进行编码的字符更多
decodeURLComponent("需要进行解码的数据"); // URL解码,对更多的字符进行解码
parseInt("字符串"); // 可以将里面的字符串按照字面值转换为 number 类型,直到里面的字面值不为 数字
isNaN("数据"); // 用于判断传输的数据是不是 NaN 类型。 NaN 参与的 === 比较均为 NaN
eval("传输JS代码的字符串"); // 将字符串类型的JS对象全部转为代码执行
如果这篇文章对你有用的话,记得点个赞哦!
修仙永无止境。