前端Web--JS基础部分

js基础

1.数据类型

JS组成

ECMAScript——JavaScript语法

DOM——页面文档对象模型

BOM——浏览器对象模型

数据存储单位

大小关系:bit < byte < kb < GB < TB<.....
  • 位(bit): 1bit 可以保存一个 0 或者 1 (最小的存储单位)
  • 字节(Byte):1B = 8b
  • 千字节(KB):1KB = 1024B
  • 兆字节(MB):1MB = 1024KB
  • 吉字节(GB): 1GB = 1024MB
  • 太字节(TB): 1TB = 1024GB

输入输出语句

方法说明归属
alert(msg)浏览器弹出警示框浏览器
console.log(msg)浏览器控制台打印输出信息浏览器
prompt(info)浏览器弹出输入框,用户可以输入浏览器

alert() 主要用来显示消息给用户,console.log() 用来给程序员自己看运行时的消息。

声明变量

//  声明变量  
var age; //  声明一个 名称为age 的变量     

赋值

age = 10; // 给 age  这个变量赋值为 10          

变量的初始化

var age  = 18;  // 声明变量同时赋值为 18          
声明一个变量并赋值, 我们称之为变量的初始化。

数据类型简介

  • Nunber 数字型,包含整型和浮点型,在JS中八进制前面加0,十六进制前面加 0x
alert(Number.MAX_VALUE); // 1.7976931348623157e+308
alert(Number.MIN_VALUE); // 5e-324
alert(Infinity);  // Infinity 无穷大
alert(-Infinity); // -Infinity 无穷小
alert(NaN);       // NaN , Not a number,代表一个非数值

isNaN用来判断一个变量是否为非数字的类型,返回 true 或者 false

语法: var 变量名A = isNaN(变量名B)

  • String 字符串型

    转义符解释说明
    \n换行符,n 是 newline 的意思
    \ \斜杠 \
    ’ 单引号
    "”双引号
    \ttab 缩进
    \b空格 ,b 是 blank 的意思

字符串长度 —— 语法:语法: var 变量名A = 变量名B.length

字符串拼接

​ 多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串

​ 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串

​ 如果变量两侧都有字符串拼接,口诀“引引加加 ”,删掉数字,变量写加中间

  • Boolean 布尔值类型,如true、false,等价于1和0、
  • Undefined 未定义——一个声明后没有被赋值的变量会有一个默认值undefined
  • Null 空值——一个声明变量给 null 值,里面存的值为空

获取变量数据类型

typeof 可用来获取检测变量的数据类型

var num = 18;
console.log(typeof num) // 结果 number      

数据类型转换

  • 转换为字符串

    1.toString() 语法:alert(变量名.toString())

    2.String()强制转换 语法:alert(String(变量名))

    3.加号拼接字符串:和字符串拼接的结果都是字符串(隐式转换)

  • 转换为数字型

    1.parseInt(string)函数 语法:parseInt(’string‘)

    2.parseFloat(string)函数 语法:parseInt(’string‘)

    3.Number()强制转换 语法:Numer(‘string’)

    4.js隐式转换:利用算术运算隐式转换为数值型 比如:‘12’-0

  • 转换为布尔型

    Boolean()函数 语法:Boolean(‘string’)

关键字

包括:break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、return、switch、this、throw、try、typeof、var、void、while、with 等。

2.运算符、流程控制、循环

递增运算符

++num 前置递增,就是自加1,类似于 num = num + 1,但是 ++num 写起来更简单。

使用口诀:先自加,后返回值

num++ 后置递增,就是自加1,类似于 num = num + 1 ,但是 num++ 写起来更简单。

使用口诀:先返回原值,后自加

比较运算符

< > <== >== == != === !==

逻辑运算符

与&& 或|| 非!

流程控制

if 语句

// 适合于检查多重条件。
if (条件表达式1) {
    语句1} else if (条件表达式2)  {
    语句2} else if (条件表达式3)  {
   语句3....
} else {
    // 上述条件都不成立执行此处代码
}

三元表达式

表达式1 ? 表达式2 : 表达式3;

switch分支流程控制

  switch( 表达式 ){ 
      case value1:
          // 表达式 等于 value1 时要执行的代码
          break;
      case value2:
          // 表达式 等于 value2 时要执行的代码
          break;
      default:
          // 表达式 不等于任何一个 value 时要执行的代码
  }

注意: 执行case 里面的语句时,如果没有break,则继续执行下一个case里面的语句。

for循环

for(初始化变量; 条件表达式; 操作表达式 ){
    //循环体
}

while循环

while (条件表达式) {
    // 循环体代码 
}

do-while循环

do {
    // 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);

continue

continue 关键字用于立即跳出本次循环,继续下一次循环(本次循环体中 continue 之后的代码就会少执行一次)

break

立即跳出整个循环(循环结束)

3.数组、函数

创建数组

  • 利用 new 创建数组

    var 数组名 = new Array()var arr = new Array();   // 创建一个新的空数组
    

    注意 Array () ,A 要大写

  • 利用数组字面量创建数组

    //1. 使用数组字面量方式创建空的数组
    var  数组名 = []//2. 使用数组字面量方式创建带初始值的数组
    var  数组名 = ['小白','小黑','大黄','瑞奇'];
    

数组中新增元素

  数组[ 数组.length ] = 新数据;

函数的使用

声明函数

// 声明函数
function 函数名() {
    //函数体代码
}

调用函数

// 调用函数
函数名();  // 通过调用函数名来执行函数体代码

函数的参数

  • 形参:函数定义时设置接收调用时传入
  • 实参:函数调用时传入小括号内的真实数据

函数的返回值

return 语句

  • 在使用 return 语句时,函数会停止执行,并返回指定的值
  • 如果函数没有 return ,返回的值是 undefined

arguments的使用

当不确定有多少个参数传递的时候,可以用 arguments 来获取

arguments展示形式是一个伪数组,可以进行遍历

  • 具有 length 属性
  • 按索引方式储存数据
  • 不具有数组的 push , pop 等方法

4.作用域、预解析、对象

JavaScript(es6前)中的作用域有两种:

​ 全局作用域 在函数内部没有声明直接赋值的变量属于全局变量

​ 局部作用域(函数作用域)

预解析

  • 预解析:在当前作用域下, JS 代码执行之前,浏览器会默认把带有 var 和 function 声明的变量在内存中进行提前声明或者定义。

  • 代码执行: 从上到下执行JS语句。

    预解析会把变量和函数的声明在代码执行之前执行完成。

对象

所有的事物都是对象,对象是由属性和方法组成的

  • 属性:事物的特征,在对象中用属性来表示(常用名词)
  • 方法:事物的行为,在对象中用方法来表示(常用动词)

创建对象的三种方式

1.利用字面量创建对象

var 对象名 = {
   属性1:属性值1;
  属性2:属性值2;
  .......
    sayHi : function(){
        alert('大家好啊~');
    }
};

调用对象——对象名.属性名 或 对象名[‘属性名’]

调用对象方法——对象名.方法名()

2.利用 new Object 创建对象

var 对象名 = new Obect();

通过内置构造函数Object创建对象,此时变量已经保存了创建出来的空对象

通过对象操作属性和方法的方式,来为对象增加属性和方法

比如——对象名1.属性1=’XXX‘;

3.利用构造函数创建对象

function 构造函数名(形参1,形参2,形参3) {
     this.属性名1 = 参数1;
     this.属性名2 = 参数2;
     this.属性名3 = 参数3;
     this.方法名 = 函数体;
}

构造函数的调用格式

var obj = new 构造函数名(实参1,实参2,实参3)

以上代码中,obj即接收到构造函数创建出来的对象

遍历对象

其语法如下:
for (var 变量 in 对象名字) {
    // 在此执行代码
}

5.内置对象

Math对象

属性、方法名功能
Math.PI圆周率
Math.floor()向下取整
Math.ceil()向上取整
Math.round()四舍五入版 就近取整 注意 -3.5 结果是 -3
Math.abs()绝对值
Math.max()/Math.min()求最大和最小值
Math.random()获取范围在[0,1)内的随机数
// Math随机数方法  包含两端的2个数字
function getRandom(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min; 
}
 console.log(getRandom(1, 10));

日期对象

  • 获取当前时间必须实例化:
var now = new Date();
  • 获取指定时间的日期对象
var future = new Date('2019/5/1');//或者 ('2019-10-10 8:8:8')

 // 返回当前年份
        console.log(date.getFullYear());
        // 返回当前月份 数值比实际月份小1  需要+1
        console.log(date.getMonth() + 1);
        // 返回当前日期是本月的多少日
        console.log(date.getDate());
        // 返回当前日期是周几  注意:返回当前是周几  周日返回值为0
        console.log(date.getDay());
         // 返回当前小时
        console.log(date.getHours());
		  // 返回当前分钟
        console.log(date.getMinutes());
		  // 返回当前秒钟
        console.log(date.getSeconds());
  • 获取总毫米数

基于1970年1月1日(世界标准时间)起的毫秒数

获取总毫秒数如下

// 实例化Date对象
var now = new Date();
// 1. 用于获取对象的原始值
console.log(date.valueOf())	
console.log(date.getTime())	
// 2. 简单写可以这么做
var now = + new Date();			
// 3. HTML5中提供的方法,有兼容性问题
var now = Date.now();

数组对象

检测是否为数组

1.instanceof 可以判断一个对象是否是某个构造函数的实例 返回值为true或者false

语法:数组名 instanceof Array

比如:console.log(arr instanceof Array);

2**.Array.isArray(数组名)**用于判断一个对象是否为数组 返回值为true或者false 是 HTML5 中提供的方法

添加删除数组元素

方法名说明返回值
push(参数1…)末尾添加一个或多个元素–数组名.push(要添加的)新的长度
pop()删除最后一个元素,数组长度减一删除的元素值
unshift(参数1…)开头添加一个或多个元素新的长度
shift()删除第一个元素,数组长度减一第一个元素值

注意:push、unshift为增加元素方法;pop、shift为删除元素的方法

数组排序

方法名说明
reverse()颠倒数组中元素顺序
sort()对数组的元素进行排序

注意:sort方法需要传入参数来设置升序、降序排序

  • 如果传入“function(a,b){ return a-b;}”,则为升序
  • 如果传入“function(a,b){ return b-a;}”,则为降序

数组转换为字符串

1.toString() 把数组转换成字符串,逗号分隔每一项

2.join(‘分隔符’) 把数组中的所有元素转换为一个字符串

注意:二者均返回一个字符串,join方法如果不传入参数,则按照 “ , ”拼接元素

数组对象转换为字符串格式

JSON.stringify()

其他方法

数组连接 concat(‘连接内容’)

数组截取字符串 slice(截取的起始位置,截取的数量)

数组替换 replace(‘被替换的字符’,‘替换为的字符’) 只会替换第一个

数组根据索引号删除相关内容 splice(索引号,从索引号处开始要删除的数量 )

字符串对象

js 会把基本数据类型包装为复杂数据类型

字符串转换为数组对象

JSON.parse()

字符串操作方法

连接字符串 str.concat(‘连接内容’)

查找字符串 str.substr(start,length) 从start位置开始,length取的个数

截取字符串 slice(start,end) 从start位置开始,截取到end位置,end取不到

替换字符串 str.replace(‘被替换的字符’,‘替换为的字符’) 只会替换第一个

字符转换为数组 str.split(‘分隔符’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值