// string和tostring
console.log(String(Object))
// to string没有undefined和null的数据类型但是可以传递一个参数:输出数值的基数//
// string:强转函数,可以转化任何类型的值
// 三目运算符
var a = 2;
var c = 3;
var b = (a > c) ? a : c;
console.log(b) // 边界值 ? 真的话 : 假的话
// 例子:表达式1 ?表达式2 : 表达式3
// 执行顺序:先求表达式1,若值为非0,表示条件为真,则求表达式2,此时表达式2的值就作为整个条件表达式的值;
//若表达式1的值为0,表示条件为假,则求解表达式3,表达式3的值就是整个条件表达式的值.
alert('大佬') /弹出框/ /会阻碍javascript的解析/
document.write('大佬666') /打印在页面/
// ECMAScript中的一切(变量、函数名、和操作符)都严格区分大小写。
// 第一个字符必须是一个字母、下划线(_)或一个美元符号($);其他的字符可以是字母、下划线、美元符号或数字;
// ECMAScript的变量是松散类型的,所谓松散类型就是可以保存任何类型的数据。
// var定义的变量叫显式声明, 省略var声明的变量叫隐式声明。也可以定义全局变量;
// 栈内存:5种基本数据类型的值保存在栈内存中(值传递) 堆内存:对象类型的值保存在堆内存中(地址传递)
var a1;
console.log(a1) /*undefined*/
console.log(typeof a1) /*undefined*/ // 声明变量但不赋值为undefined检测其数据类型也为undefined//
var car = null;
console.log(car); //null
console.log(typeof car); //"object" /* Null是特殊的对象类型:object*/
console.log(undefined == null ? true : false) // true// /*实际上undefined值是派生自null值的,因此ECMA-262规定对它们的相等性测试要返回true。*/
var num = 0.1 + 0.2;
console.log(num) //0.30000000000000004// /* 浮点数值的最高精度是17位小数*/
console.log(5 - "hello"); //NaN
NaN + 4 // NaN// /*任何涉及NaN的操作都会返回NaN。*/
// NaN与任何值都不相等, 包括NaN本身。//
alert(NaN == NaN) //false 自我否定
/数据类型包含一些特殊的字符字面量,也叫转义序列(字符),用于表示非打印字符/
/* \n 换行 /
/ \t 制表 /
/ \b 空格 /
/ \r 回车 /
/ \f 换页 */
/*全等和相等*/
// 全等运算符由 3 个等于号( === )表示,比较值的同时比较数据类型是否相等 //
// 相等运算符由2个等于号( == )表示 只比较值是否相等 //
var result1 = ("55" == 55); //true,/*转换后为( 55 == 55 )*/
var result2 = ("55" === 55); //false,
/*转换后不仅比数值还比数据类型(string === number )为false */