js 交换两个值的方法
方法一
var num1 = 10;
var num2 = 20;
var temp;
temp = num1;
num1 = num2;
num2 =temp;
console.log(num1,num2);
方法二
(适用于数字交换)
var num1 = 10 , num2 = 20;
num1 = num1 + num2;
num2 = num1 - num2;
num1 = num1 - num2;
console.log(num1,num2);
方法三
(位运算)
var num1 = 10 , num2 = 20;
num1 = num1 ^ num2;
num2 = num1 ^ num2;
num1= num1 ^ num2;
console.log(num1,num2);
什么时候值是undefined
(变量声明了没有赋值结果是undefined。函数没有明确的返回值,如果接收了,结果也是undefined)
var num;
console.log(num1);//输出结果为undefined;
console.log(num1+10);//输出结果为NaN(not a number)
//如果一个变量的结果是undefined和一个数字进行运算,结果是NaN
检验数据类型 typeof
var num = 10;
var str = "小明";
var flag = true;
var nll = null;
var undef;
var obj = new Object();
console.log(typeof num);//number
console.log(typeof str);//string
console.log(typeof flag);//boolean
console.log(typeof nll);//object
console.log(typeof undef);//undefined
console.log(typeof obj);//object
Number
number的最大值和最小值
console.log(Number.MAX_VALUE)//数字的最大值
console.log(Number.MIN_VALUE)//数字的最小值
不要用小数去验证小数
var x=0.1;
var y=0.2;
var sum=x+y;
console.log(sum == 0.3);
Infinity//无穷大
-Infinity//无穷小
NaN不等于NaN
var num;
console.log(num+10 == NaN);//false
判断是不是数字用isNaN()
var num;
console.log(isNaN(num));//true
//是数字就输出false,不是数字输出true
String
字符串的长度
var str="Puppy";
console.log(str.length)
js数据类型分为两类
1.基本类型
String:字符串
Number:数字
Boolean:布尔类型
undefined:未定义
null:空
2.引用(对象)类型
object:基本对象类型,任何对象都可以是object
两特殊的
Function:可以执行函数的对象
Array:内部数据是有序的,有下标(从0开始)
3.判断数据类型
typeof
可以判断undefined / 数值 / 字符串 / 布尔 / function
不能判断 object 和 Array ,null
instanceof 判断当前类型,是否来自对应类型(构造函数)
== 和 === 的区别
==会对数据类型做隐式转换,再进行比较
===不会转换数据类型
简写方式
1.函数
var f1=new Function()
var f2=function(){}
function f3(){}
2.数组
var a1=new Array()
var a2=[]
3.对象
var o1=new Object()
var o2={}