var:变量
语法
var 变量名;
var 声明变量时的关键,可以省略,省略之后变量就成为了“全局变量”,不推荐省略
变量名:只能是由字母、数字、下划线(_)以及$
不允许使用JS关键字及保留关键字
变量名不能以数字开头
const:常量,
在程序中,一旦声明,在运行过程中就不允许被修改的数据,称之为常量(一周有几天、圆周率)
常量声明时,必须初始化值
一般常量的名字全部大写
console.log(); 控制台打印输出
typeof() 函数
作用:获取指定数据(变量)的数据类型
语法:typeof(变量) 或者 typeof 变量
isFinite() 函数用于检查其参数是否是无穷大。
2.数据类型
2-1.number类型
数字类型:可以表示32位(4个字节)的整数,也可以表示64位的浮点数(小数)
var num =010;0开头的数据都是八进制
整数:十进制 八进制 逢8进一 0 1 2 3 4 5 6 7
var num=0x10; 0x开头的都是十六进制
小数:科学计数法 var num=3.14e10; 直接复制数字或者小数的变量就是number类型
2-2.string类型 用单引号或者双引号括起来的变量就是字符串类型
字符串类型:由unicode字符(万国码,任何国家的任何语言在计算机中都有独立的编码)、数字、标点符号组成
查看unicode的方法
在控制台输入:字符.charCodeAt();
2-3 boolean类型
布尔类型:来表示逻辑的真或假,肯定或否定,只能出现一种结果
值: true(真) false(假) 给boolean类型赋值时不能加引号 var nag=true
2-4.undefined
表示访问的数据不存在
使用场景:
1、声明变量未赋值 js给变量的初始值
2、访问的对象属性不存在
2-5.null 对象不存在、或者变量的值为空
3.数据类型的转换–强制转换
3- 1、 toString()
转换成字符串,任意一种数据烈性都可以被转换为string类型
语法:数据(变量).toString();
调用toString()函数后,会返回一个string类型的数据,原数据类型并没有影响
3- 2、parseInt(数据)
将数据转换为number(整数)
碰到第一个非整数字符,则停止转换
如果无法转换时,转换的结果为NaN
3- 3、parseFloat(数据)
将数据转换为number类型(小数)
碰到第一个非小数点或者数字字符,则停止转换
3- 4、Number(数据)
将一个数据解析为number类型
如果数据中包含非法字符,则返回NaN
4、隐式转换—自动转换
不同类型的数据在计算过程种会进行自动转换
4-1.任何一种数据类型的数据,在与string做 “+”运算时,都会将其转换为string,再做拼接
4-2. .number类型 +boolean类型 =number类型 将boolean类型转换成number类型
4-3.num + und =NaN 隐式转换:尝试将und转换为number,转换失败,给出一个结果 NaN(Not a Number)
NaN(Not a Number) ,不是一个数
函数:isNaN(数据) 是不是不是一个数 true 不是数 false 是数
作用:判断数据是否为 非数字类型(只判断数值,与类型无关),如果非数字,返回true,是数字返回false。
4- 4.boo + und;=string类型
5、转义符:
\n:换行
\t:缩进
\r:回车
\’: ’
\": "
\\: \
6、条件运算–三目运算
一目运算 – – ++
双目运算 + - * / % && || & | ^ > <
三目运算 需要三个表达式/操作数
语法:
表达式1?表达式2:表达式3;
true √
false √
表达式1运行的结果是boolean类型
若果表达式1的结果是true,整个表达式的结果为表达式2的运算结果
如果表达式的结果为false,整个表达式的结果为表达式3的运算结果
7、位运算符
只能做数字运算,将数字转化为二进制,再来做运算
7- 1、&
//按位与 ,将两边的操作数转化成二进制,每位的数字,只有对应都为1的时候,该位的结果才1,否则该位的结果为0
var n1=5;
var n2=3;
var r= n1 & n2;
console.log®;//1
变量名 十进制 二进制
n1 5 101
n2 3 011
n1&n2 1 001
7-2、|
按位或 ,两边的操作数转换成二进制,比较每位上的数字,两个数字中有一个1的话,该位的结果就是1,否则为0
r = n1 | n2;
变量名 十进制 二进制
n1 5 101
n2 3 011
r 7 111
console.log("按位或的结果:"+r);
var n3=86.9;//将86.9转换成二进制,在做按位或计算
console.log(n3 | 0);
作用:向下取整
7-3、>>
按位左移,将二进制数字,向左移动n位,右边以0补位
console.log(2<<1);
console.log(2<<2);
console.log(2<<3);
console.log(2<<4);
0000 0000 0010
0000 0000 0100
0000 0000 1000
0000 0001 0000
7-4、>>
按位右移,将二进制数,向右移动n位,左边以0补位
console.log(16>>4);
10000 10000 — 00001
7-5 、 ^
异或 将两边的数字转换成二进制进行比较,每位上的数字,只有一个为1时,该位结果才为1,否则为0
console.log(n1,n2);
//交换两个变量的值
n1=n1^n2;
n2=n2^n1;
n1=n1^n2;
console.log(n1,n2);
/*
变量名 十进制 二进制
n1 5 101
n2 3 011
n1=n1^n2 6 110
n2=n2^n1 5 110
011
101
n1=n1^n2 3 110
101
011
交换两个变量的值
var num1=10,num2=12;
var temp=num1;
num1=num2;
num2=temp;
console.log(num1,num2);
8,、逻辑运算
&&
逻辑与并且 两边的数据或者表达式结果都是true时,返回true 否则返回false 见false则false
只要第一个条件为假,则不会判断第二个表达式,整个表达式的结果为 false
|| 逻辑或 或者两边的条件任意结果为true时,返回true,否则返回false 见true则true
只要第一个条件为真,则不会判断第二个条件,整个表达式的结果为true
!
取反
var num1=10,num2=12,num3=10,num4=5;
console.log();//false
console.log();//true
console.log(num1>num2 && ++num3>num4);//false
console.log(num3);//
console.log(num1>num2 || ++num3>num4);//false
console.log(num3);
console.log(num1<num2 || num3>++num4);//false
console.log(num4)
console.log(!isNaN("5"))