JS基础知识整理1

基础

Js包括:ES(标准) ,DOM(文档对象模型),BOM(浏览器对象模型)

Js特点:解释型语言(不用编译);类似于C和Java的语法结构;动态语言;基于原型的面向对象。

标识符:所有可以自主命名的(变量名,函数名,属性名)
规则
1.标识符中可以含有字母,数字,下划线,$
2.标识符不能以数字开头
3.标识符不能是ES中的关键字
4.命名规范:驼峰命名法
js底层保存标识符实际上采用的是Unicode编码,所以所有UTF-8中含有的字符都可以作为标识符,但不能用中文。

数据类型

六种数据类型
String 字符串
Number 数值
Boolean 布尔值
Null 空值
Undefined 未定义(声明但没赋值)
Object 对象
补充:
1.Object为引用数据类型,其余为基本数据类型。
2.用 typeof 可以检查数据类型。
3.最大的数字:Number.MAX_VALUE
最小的正数: Number.MIN_VALUE
4.Null 类型用 typeof 检查结果为 Object

强制类型转换

将其他类型强制转换为String

方式1:
调用被强制转换类型的toString()方法,该方法只是将转换的结果返回,本身并不变化
例:b = b.toString();
null类型和 undefined 类型无 toString 方法,不能转为string型
方式2:
调用string函数
例:b = String(b);
null类型和 undefined 类型都可以转换

将其他类型转换为 Number
1.纯数字字符串,直接转换为数字
2.含有非数值字符,则转换为NaN
3.空串转换为0,null=0
4.布尔类型,true=1,false=0
5.undefined = NaN
方式1:使用Number函数
方式2:(专门用来将字符串转为数值):只转换字符串中有效数字部分
   parseInt() 把一个字符串转换为一个整数
   parseFloat() 把一个字符串转换为一个浮点数
   可以用parseInt()的第二个参数来表示进制
   如果非数字类型调用parseInt(),则先将其转换为字符串,再转为数值
将其他类型转换为布尔
调用Boolean函数
    1.数字转布尔,0和NaN = false
    2.空串为false
    3. null = false
    4.undefined = false

操作符

一元运算符

 + 正号
 - 负号
 ++ 自增
 -- 自减

逻辑运算符

!  非
&& 与
|| 或
   非布尔值进行运算,会先转换为布尔值然后进行运算。

关系运算符

     >  
     <
     >=
     <=
任何值和NaN比较都是false
两个字符串比较不用转换为数值,用Unicode编码进行比较

相等运算符

== 返回true或false;如果值的类型不同,则自动转化为相同的类型
undefined == null true
NaN和任何值都不相等,包括其本身
isNaN()函数判断对象是否为NaN 
!= 不相等
=== 全等 不会做类型转换
!== 不全等 不会做类型转换

条件运算符

条件表达式? 语句1:语句2;
例:r = 3>5?1:0;
如果3大于5,则返回1;如果3<5,则返回0;
结果为:r = 0

对象

对象分类:

1.内建对象
  由ES标准定义的对象,在任何的ES实现中都可以用
  比如:Math String Number Boolean Function Object...
2.宿主对象
  由JS运行环境提供的对象,主要指由浏览器提供的对象
  比如:BOM DOM 
3.自定义对象
  由开发人员自己创建的对象

数组

Date对象 表示一个时间

格式:周 月/日/年 时:分:秒
使用时需要先创建一个Date对象,然后调用方法

方法:

      getDate() 获取当前对象时间的日期
      getDay() 获取当前对象时间是周几  0~6表示周日~周六
      getMonth() 获取当前对象时间是几月  0~11 表示 1月~12月
      getFullYear() 获取当前对象时间的年份
      getTime() 获取当前日期对象的时间戳

补充:

         时间戳指从格林威治标准时间的 1970年1月1日 0时0分0秒 到当前日期所花费的毫秒数(我们通常说的时间为北京时间,与格林威治标准时间有8小时时差)
         获取当前时间     time = Date.now();

Math 数学公式 工具类,不需要创建对象,可以直接用

       Math.abs() 绝对值
       Math.ceil() 对数进行上舍入(向上取整)
       Math.floor() 对数进行下舍入(向下取整)
       Math.round() 对数进行四舍五入
       Math.random() 生成0~1之间的随机数,不包括0,1
       生成x~y之间的随机数: Math.round(Math.random()*(x-y) + x)
       Math.max() 获取多个数中的最大值;
       Math.min() 获取多个数中的最小值
       Math.pow(x,y) 返回x的y次方
       Math.sqrt() 平方根

String(字符串)

字符串在底层义字符数组的形式存储
方法:

  	charAt() 返回在指定位置的字符
	charCodeAt() 返回在指定位置的字符的UniCode编码
	fromCharCode() 根据字符编码找它代表的字符
     例: String.fromCharCode(108)
  	concat() 连接字符串
    indexOf() 检索字符串中是否含有指定内容 
              不存在返回-1,有多个则返回第一个的位置。第二个参数可以指定开始查找的位置
    lastIndexOf() 检索字符串中是否含有指定内容,从后面往前查询 
    slice() substring() 截取字符串,与数组用法一样
        substring() 不能接受负值;会自动从小到大截取
    split() 可以将一个字符串拆分为数组,参数为分隔符
    toUpperCase() 将字符串转换为大写
    toLowerCase() 将字符串转换为小写

正则表达式

计算机根据正则表达式来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来。
创建正则表达式的对象

var 变量 = new RegExp("正则表达式","匹配模式");
            匹配模式:i 忽略大小写;g 全局匹配模式
使用字面量来创建正则表达式
	var 变量 = /正则表达式/匹配模式

检测是否为正则表达式

 正则表达式对象.test(被检测的字符串)

方法:

split() 根据字母拆分字符串,默认全局
search() 搜索字符串中是否含有指定内容,只会查找第一个
match() 根据正则表达式,从一个字符串中将符合条件的内容提取出来,默认情况下,只会找到第一个符合要求的内容,给正则表达式设置全局匹配模式,全局查找
replace() 将字符串中指定的内容替换为新的内容;第一个参数为被替换的内容,第二个参数为替换的内容
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格格不入ち

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值