js基础区别

it2025-12-31  13

// console.log(null == undefined); // 布尔类型有true和false // if(true){ // console.log("hello world"); // } // true是所有的非0的数字都可以划等号 // if(-10){ // console.log("hello world"); // } // console.log(Boolean(""));false // console.log(Boolean(" "));true // if(`里面有内容就不算空,就算是一个空格也不是空,有内容就算true,没有就是false`){ // console.log('hello world') // } false // “” ‘’ `` 0 -0 NaN false null undefined都是false // console.log(0b101);二进制前面加0b // console.log(0101);八进制前面加0 // console.log(0x101);十六进制前面加0x // 实数 // 3.14*10 的5次方; // 3.14e+5 // 负的次方就在e后面-次方数 // let a=NaN+10; // console.log(a);返回类型就是NAN类型 // console.log(isNaN(""));空字符串也是数值类型,是非nan类型 // NaN和任何值都不相等,包括他自己本身也不相等 // 非数返回ture 如果是一个数 返回类型false 并且能够隐式转换为数字,也是按照数字处理都是false // NaN属于number类型 // console.log(Number('123'));123 // console.log(Number('123abc'));NaN // parseInt有两个参数,后面的参数可以控制多少进制,前面的参数是第二个参数进制下的数,最后将它转化为十进制, // console.log(parseInt('123abc'));123 // console.log(parseInt('abc123'));NaN // console.log(parseInt("10",8));八进制 // console.log(parseInt("101",8)); // console.log(parseInt("AF"));NaN // console.log(parseInt(""));NaN // console.log(parseInt("AF",16));十六进制 abcdef是10到15的数 // parseFloat()将非数转化为浮点数只能解析十进制只有一个参数; // console.log(parseFloat("3.14")); // console.log(parseFloat("123acd"));123 // console.log(parseFloat("abc123"));NaN // console.log(parseFloat("2.15e+2"));215 // console.log(parseInt("12.3#"));12 // console.log(parseFloat("12.3#"));12.3 // console.log(Number(""));如果字符串是空的,则将其转化为0; // console.log(isFinite(NaN));false // console.log(Number.isFinite(NaN));false // 字符串 // console.log("1"+NaN);1NaN // console.log(1+NaN);NaN; // let i=5; // console.log(i.toString()); // let j=null;和undefined可以拼接一个空字符串或者下面的方法变为字符串,直接写是不能的, // console.log(String(j),typeof String(j));null string // 多行字符串 // let i='hello'; // let j=`hello`; // let a=`hei // is // this`; // console.log(a); // let name = "xiaozhou"; // 需要加上一个${}占位符 // console.log(`hello,${name}`);hello,xiaozhou // console.log(name.length);字符串的长度 // let a="xiaozhou"; // let b=`woshi${a}`; // console.log(b); // 简单数据类型不能再拆分,复杂的类型可以拆分为多个简单数据类型 // 复杂值:数组 对象 // let a=10; // let b=a; // console.log(a,b);10 10 // a=5; // console.log(a,b);5 10 // let obj={ // name :'xiaozhou', // age : '20', // gender:'man' // }; // let obj2=obj;是将obj的地址赋值给了obj2;只有一个是复杂类型,才会将地址赋值, // console.log(obj); // console.log(obj2); // obj.name='xiaoxiaozhou'; // console.log(obj); // console.log(obj2); // 栈:简单值和复杂值里面东西堆的地址 堆:复杂值存放东西的地方 // 简单值比的是指,复杂值比得是地址,地址不会相同 // 对于复杂值,可以为他添加属性和方法,也可以改变和删除属性和方法;但简单值不可以添加属性和方法 // let str = 'test';简单值 // str.abc = true;不可以添加 // console.log(str.abc);undefined // let obj = {};复杂值 // obj.abc = true;添加可以 // console.log(obj.abc);true // 类型转化,在算数运算的时候,数据进行计算(-*/%); // 有字符串的运算时候+是拼接 // 强制转换的技巧: // 转换为字符串可以直接拼接上一个一个空字符串; // 转换为bool类型在数据前面写一个!(非的意思) // 转换为数值:数据类型*或者/1 // 强制转换 // console.log('100'/1); // console.log(typeof ('100'/1)); // 隐式转换 // console.log('100');只是隐式转换为100 // console.log(typeof('100'));出来的类型还是字符串 // console.log(5/2);2.5 解释性 // console.log(5%2);1 // console.log(2**3);2的三次方 // let a = 2; // let b = 10; // let c = --a + b; // let d = a + b; // console.log(a,b,c,d);//1 10 11 11 // let a=10; // --a; // console.log(a); // console.log("c" > "b");//true // console.log("c" > "box");//true // ==和=== // console.log(5=="5");true // console.log(5==="5")false // && // let a=true; // let b=a&&c; // console.log(b);会报错, 因为与&&的短路现象,第一个为真就进入第二个,返回第二个操作数 // let a=false; // let b=a&&c; // console.log(b);false, 在与&&的短路现象,第一个为假直接返回第一个操作数,不会进入第二个操作数 // let a=true; // let b=a||c; // console.log(b);true 在或||的短路现象中,第一个为真就直接返回第一个操作数,不会进入第二个操作数 // let a=false; // let b=a||c; // console.log(b);报错, 在或||的短路现象中,第一个为假的话会进入第二个操作数,直接返回第二个操作数

转载于:https://www.cnblogs.com/xiaozhou619/p/9692445.html

相关资源:javascript基础
最新回复(0)