JS基本知识

1. 数据类型

分为原始类型和引用类型
原始类型分为五大类 数值型,字符串型,布尔型,未定义型,空

(1) 数值型

分为整型和浮点型

检测数据类型 typeof

(2) 字符串型

被引号包含的数据就是字符串,不区分单双引号
查看任意一个字符的unicode码
console.log(“焱”.charCodeAt());

(3) 布尔型

只有两个值,分别为true 和false 表示真或假
常用用于两个状态的数据,例如是否登录,是否注册,是否在线。

(4) 未定义型

只有一和值 undefined,声明了变量未赋值则结果为undefined

(5) 空

只有一个值null‘,是对象型(object),常用于应用类型中’

2数据类型的转换

1) 隐式转换

在运算过程中自动转换
数字+字符串 数字转成字符串

var t1 = '3'+5;
//35.

数字+布尔

'3'+ true
//'3true'

布尔型+字符串

true + 5
//6 number
var a=7,b=true,c='3';

console.log(a+b+c);//'83'
console.log(b+c+a);//true37
console.log(c+a+b);//37true

声明多个变量:姓名,性别,爱好
var name = ‘韩信’;
var sex = ‘男’;
var like= ‘打架征服别国’;
console.log(‘姓名’+name + “性别” + sex + ‘爱好’ + like);
加法运算
字符串的拼接

其它运算符( _ * / )的转换,都是隐式转换为数值型
NAN: Not a Number 不是一个数字,在将一个数据转换为数值类型的时候,如果无法转换成功则返回NAN。

2) 强制转换

(1) 强制转为数值型

在隐式转换为数值的时候,也是自动调用这个函数

Number(true//1
Number(false//0
Number(’5’)//5
Number(’5a’)//NAN
Number(undefined)//NAN
Number(Null//0)

(2) 强制转为整型

ParseInt()
常用于将小数或字符转为整型 如果字符串开头是非数字结果是NAN;其它类型都是返回NAN

var p1 = parseInt(3.64);//3
var p2 = parseInt('5a');//5
var p3 = parseInt('a5');//NAN
var p4 = parseInt(true);//NAN
var p5 = parseInt(undefined);//NAN
var p6 = parseInt(null);//NAN

(3) 强制转为浮点型

ParseFloat()
常用于将字符串转为浮点型

var o1 = parseFloat('3.14');//3.14
var o2 = parseFloat('5a');//5
var o3 = parseFloat('a5');//NAN、

(4) 将数值和布尔值转换为字符串

ToString()
var num =5;
//将5转换为字符串,新成一个新的数据,原来的num不变

num1 = num.toString();
console.log(num,typeof num);//5
console.log(num1,typeof num1);//'5'
  1. 运算符
    表达式:由数据或者有运算符连接的操作数据组成的格式
    分为算术运算符,比较运算符,逻辑运算符,位运算符,赋值运算符,三目运算符
    (1) 算术运算符
      • / % ++ –
        % 取余
        ++ 自增 原来的基础之上加1
        – 自减 原来的基础之上减1
        var b =a++;//先把当前a的值赋值给b,在执行自增
        var c =++d;//先让b执行自增,在赋值给c 和d的值一样

自增自减也具有讲数据隐式转换为数值型
var n=‘5’;
n++;
console.log(n);//6
(2) 比较运算符
< 、> 、 >=、 <=、 ==、 !=、 ===、

3>10//false 
数值和字符串比较,字符串隐式转换为数值
‘3>10// true
字符串比较,比较的是首个字符的Unicode码
//console.log(3>'10a');//false
//console.log(3<'10a');//false
//console.log(3=='10a');//false
//console.log(NAN==NAN);//false
任何值和NAN比较都是false,两个NAN比较也是false,比较 != !==true

(3) 逻辑运算符

& & 逻辑与(并且)关联的两个条件都是true结果才是是true,否则false
| | 逻辑或(或者)关联两个条件有一个是true结果是true
逻辑非(反)

短路逻辑
&& 当第一个条件为false,不在执行第二个条件
| | 放第一个条件为true,不再执行第二个条件
短路逻辑无需关注最终的结果是true还是false 关键在于第二个条件十分执行

4. 位运算符(二进制)

模拟计算机底层的运算过程,先把数据转成二进制,然后运算,当运算完再转成十进制
1 2 3 4 5 6 7
1 10 11 100 101 110 111
& 按位与 上下两位比较,都是1结果是1,否则为0
| 按位或,上下两位比较,含有1结果为1,否则为0

5. 运算符

(1) 赋值运算符

= += *= /= %= ….
运算赋值:先执行前边的运算,在执行后面的赋值

(2) 三目运算符

一目运算符:由一个运算符连接的一个表达式或者数据 ! ++ –
二目运算符:由一个运算符连接的两个个表达式或者数据 = < +1 %

三目运算符:由两个运算符连接的三个表达式或数据
条件表达式? 表达式1:表达式2
如果表达式为true,执行1
如果表达式为false,执行2

6. 浏览器函数

alect() :弹出警示框
prompt():弹出输入框;保存的为字符串型,点击取消得到null
程序 = 数据+算法
程序的执行方式分为顺序执行,选择执行,循环执行

7.流程控制

(1) if语句

满50减30
If( 表达式){
语句块儿
}
以下5中数据作为条件表达式,隐式转换为false
0、’’、NAN、undefined、null。

(2) if else 否则

If(条件表达式){
语句1
}else{
语句2
}

(3)else if{

}

var money = prompt('输入数值')
if(money<=0){
	 alert('无效金额');
}else if(money<100000){
	alert('普通用户');
}else if (money<=1000000){
    alert('优质用户')
}else if (money<=10000000){
    alert('精品用户')
}else if (money>=100000000){
    alert('钻石用户')
}else{
    alert('欢迎光临')
};

(4)switch(表达式){

case 值1://表达式保存的值是1
语句块1
bteak; //结束,不在往后执行
case 值n:
语句块n
break;
default://以上表达式和每一个值比较都是false
语句块n+1
}

var city='宜宾';
switch (city)
{
case '四川':
  console.log('火锅');
  break;
case '重庆':
  console.log('小面');
  break;
case '山西':
  console.log('醋');
  break;
  default:
	  console.log('其余城市还未开通');
}

是一种特殊的多项分支语句
Switch 中的表达式和case后的值比较的时候,使用的是全等于,要求值和类型都相同 对比if-else嵌套和swicth-case的区别 两者都是用于多项分支 If-else在条件表达式中既可以使用等于,也可以用不等于,或者其他的运算符 Switch-case只能使用全等于的比较 If-else 使用的范围更广,switch-case结构更清晰,执行效率相对高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值