JS 基础

1 简单描述


  1 JS是一种运行在客户端的 "脚本语言"也是"编程语言" -> "弱类型动态语言"
  
  2 渲染引擎: 用来解析HTMLCSS, 俗称内核
  
  3 JS引擎: 用来解析网页中的JS代码, 对其逐行解释执行,V8引擎

  4 脚本语言 (不需要编译, 由js引擎逐行进行解释并执行)
  

2 知识点


1 🔶 基础知识点 

  1 false:  ""  0  NaN  false  undefined  null   // 5 种数据类型为 false 的时候

  2 () > (++ !) > (==) > (&&) > (?:) > (=) > (,)   // 运算符优先级



2 🔶 名词解释 

  1 NaN: 是一个无法表示具体值的 Namber 类型

  2 arguments (实参列表):  形参会和实参列表的值会同步改变; 多余的形参, 不会影响实参列表的值

  3 伪数组: 本质是有 length 属性和索引的 Object 

  4 continue: 跳过当前循环项

  5 break: 结束循环; switch 中阻止穿透

  6 return: 结束函数, 并可以指定返回值



3 🔶 基础逻辑理解

  1 局部变量 -> 当我们程序执行完毕就会销毁, 比较节约内存资源

  2 全局变量 -> 关闭文件才会被销毁, 比较占用内存资源

  3 定义变量 -> 开头 ($ / 字母 / 下划线), 可包含 (数字); 不使用 (关键字 && 保留字)

  4 基础数据 -> Number -- String -- Boolean -- Undefined -- Null

  5 引用数据 -> Object -- Array -- Symbol



4 🔶 特殊值的比较

  1 false
	[] == []  /  {} == {}  /  null == 0  /  null == false
	NaN == NaN  /  [0,1] == 01  /  [0,1] == "01"  /  null===undefined 

  2 true
	"" == false  /  [] == false  /  [2] == 2  /  [] == 0
	[] == ![]  /  0 == false  /  [0,1] == "0,1"  /  ["a","b"] == "a,b"
	null == null  /  undefined == undefined  /  undefined == null



5 🔶 JS 输出方式

  1 alert(66)   // 弹出框
  2 prompt(66)   // 输入框
  3 confirm(66)   // 确认框   true / false
  4 console.dir(obj)  // 控制台输出, 可详细打印对象信息
  5 console.log(66)  // 控制台输出



6 🔶 扩展了解

  1 08 -- JS0开头的数字表示8进制的数字 -- ES60o表示8进制的数字

  2 0x8 -- 说明这是一个 16进制的数字
  
  3 小数之间的计算或比较,*100化整再比较   //因为存在精度问题

3 运算符


1 算术运算符
  let num = 6 + 6   // + - * / %
  console.log(6 + 6)   // 12


2 自增自减
  let a = 1
  console.log(a++)   // 先使用再 +1;  输出 1
  let b = 1
  console.log(++b)   // 先 +1 再使用; 输出 2


3 比较运算符   //存在隐式转换
  let a = 1, b = 2   // >  <  >=  <=  ==  !=  ===  !==
  console.log(a == b)   // fasle


4 逻辑运算符   // 优先级: ! > && > ||
  !  -> 先转布尔值, 再取非
  && -> 遇假直接输出假, 所以表达式结果为假;  没有假输出最后一个 true, 所以表达式结果为 true     
  || -> 遇真真接输出真, 所以表达式结果为真;  没有真输出最后一个假, 所以表达式结果为假
  
  
5 赋值运算符   // =  +=  -=  *=  /=  %=  (简写的形式)
  let a = 1 -> a = a + 2 -> console.log(a)  // 3
  let a = 1 -> a += 2 -> console.log(a)  // 3 -> 等价于上面的式子

4 基础语句


🔶 判断语句
  1 if ( true) { ..}
  2 switch (key) { ..}
  3 true ? 66 : 77


🔶 循环语句
  1 for (var i = 0, len = 6; i < len; i++) { ..}
  2 while ( ) { ..}
  3 do { ..} while ( )
  

5 基础操作


1 创建字符串
  1 let str = "zhang"


2 数组 ↓
  1 创建 let arr = [1, 2, 3]
  2 读写 arr[index]
  3 清空 arr.length = 0   // 重新赋值 [] 的方式, 会增加内存占用


3 对象 ↓
  1 创建 var obj = {a: 'zhang', b: 'wei', c: 66, d: []}
  2 读写 obj.c / obj["c"]   // 俩种方式
  3 删除 delete obj.c

6 正则表达式

这个用的比较少 (有时间需要做一个完善)

基础用法           //通常用于操作  字符串和表单验证

1 创建正则对象
    var reg1 = new RegExp('abc','g/i/m');   (匹配规则, gim属性)
    var reg2 = /abc/i;

2 正则对象的属性
    1 reg.lastIndex;  上次匹配结束位置的索引+1, 
    2 reg.lastIndex = 0;   可读写

3 正则对象方法
    判断字符串内有没有符合, 该正则对象的字符, 返回值是 true/false,  下面这个注释的机制也可以封装判断 str 内有多少个符合的字符
    reg.test(str);  //每次执行匹配都会从上次结束索引位置+1, 开始去匹配; 如果上一次为 false, 下次从头开始匹配, 可以在匹配一次之后设置索引属性的位置
    

正则规则        //我们是怎么用正则做到判断的 ?? --如下

1 元字符   //限制1个字符
   1 \d  0~9 中任意一个数字
   2 \s  一个空格
   3 \b  一个单词边界
   4 \w  一个字符   //字母 数字 下划线
   5 \n  查找换行符
   6 \u  通常用来匹配汉字
   7 .   匹配任意一个字符, 除了换行 (\n)
   8 对应大写字母表示相反的意义:  \D == 所有非数字字符

2 方括号   //限制1个字符
  [abc]   a || b || c  (匹配三个中的一个)
  [^abc]  !a && !b && !c  (匹配除他们之外的一个字符)
  [0-9]  查找从 0-9 之间的任意一个数字
  [a-z]  查找从小写 a 到小写 z 的一个字符
  [A-Z]  查找从大写 A 到大写 Z 的一个字符
  [0-9a-zA-Z]  查找匹配的, 中括号中的任意一个字符

3 量词
  n+  匹配一个或多个  {1,}  --  /\d+/ == 匹配一个或多个数字
  n?  匹配零个或一个  {0,1}
  n*  匹配零个或多个  {0,}
  n{X}  匹配 X 个连续字符  --  /\d{3}/ == 匹配3个数字连续在一起的情况
  n{X,Y}  匹配 XY 区间任意个数的, 连续字符
  n{X,}  匹配 X,X个以上的连续字符
  ^a  匹配开头为 n 的字符串   var reg6 = /^1/; == 匹配以1开头的字符串
  n$  匹配结尾为 n 的字符串   var reg7 = /^1[3-9]\d{9}$/; == 手机号的规则

4 其他
  |  匹配左边或右边
  \  转义符, 特殊符号加在它后面, 就代表该符号本身
     var reg4 = /\.+/;  //至少一个 .
     var reg5 = /\(\d\)/;  // 匹配 '(5)'
  /[\u4e00-\u9fa5]+/  常用数字范围
  var reg8 =  /[\u4e00-\u9fa5]+/g;  //匹配汉字
  () 分组, 一个小阔号为一组
  RegExp.$1 == 保存了第一组的匹配结果
  RegExp.$2 == 保存了第二组的匹配结果

5 正则对象的方法
  1 reg.test(str); 
  判断str内有没有符合reg正则对象的值, 返回值是true false, 每次匹配都会从上次结束索引位置+1开始去匹配; 如果上一次为 false, 下次从头开始匹配, 可以匹配之后设置索引属性的位置

  2 reg.exec(str);
  检索字符串, 返回第一个符合条件的值, 且保存在数组中, 索引值 == 0, 没有返回 null

  3 reg.compile('abc','g');  
  可以重编辑指定的正则表达式

6 String 对象的方法
  1 str.search(reg);   检索与正则表达式相匹配的值, 返回索引值,-1
  2 str.match(reg);   返回所有正则表达式的匹配 (加 g), 返回数组
  3 str.replace(reg,"");   替换与正则表达式匹配的子串, 返回替换之后的内容
  4 str.split(reg);   将字符串匹配的部分做分割 (去除). 返回数组
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值