错误的声明数组方法:代码会报错,
var arr[0]= 0 ;正确声明数组的方法:
var arr = []; arr [0] = 0;需重读
typeof是一个内置的JavaScript运算符,用于探测其操作数的类型,示例如下:
var subJect = "Just a string"; var probe = typeof subject; console.log(probe);当需要的对象数据类型不存在时返回值为null,其他的数据类型例如number string无确定值时返回undefined?此处存疑,不知道理解的对不对
遇到无法表达的数值结果时,数值类型为NaN,例如:
var a = 0/0; var a = "food"*100; var a = Math.sqrt(-9);//负数的平方根为虚数,为NaN; var a = NaN != NaN;//a的值为true,**NaN 为JavaScript中唯一与自己不相等的值**;NaN 为JavaScript中唯一与自己不相等的值 当编写代码时会需要验证结构是否为NaN,但由于其与自身不相等的特性,所以
if(myNum == NaN){ myNum = 0; }是永远行不通的,因此JavaScript的作者们创建了一个特殊函数 IsNaN来验证待测验数据是否为数字,用法如下;
if(isNaN(myNum){ myNum = 0;//当myNum值不为数字时,为其赋值为0; } typeof(NaN) == number;//结果为true,所以可以理解为NaN表示无法表述的数字;如果纠结于NaN与本身不相等,可以参阅IEEE浮点数规范;书上写的,本人没看过 当数字太大(超过浮点数上限)时,
假设此处有一个超大的数值 == Infinity;//Infinity 表示数值超过浮点数上限 //-Infinity 表示数值超过浮点数下限当且仅当两个值的 类型 和 值 都相等时,他们才是严格相等的;全等运算符为‘===’
99 == '99';//true 99 === '99';//false< ,>, <=, >=,四种比较运算符;比较规则与相等运算符基本类似,当比较字符串时,实际上比较的是Unicode值的排列顺序,并不永远符合预期;但有几个基本规则,例如Aaa < aaa ,Aaa<Baa两者结果都为true;
基本的算数运算符有+ - * /;当+运算中出现字符串时,+默认为拼接运算符,会将需要运算的变量先转化为字符串类型再进行拼接运算,- * / 三种运算符默认为算术运算,会先将需要的运算变量转化为number数据类型再进行计算,示例如下:
var results = 4 + '2';//结果为‘42’; var results = 4 + Number('2');//结果为6; var results = 4 + Number('a');//结果为NaN; var results = 4 + 2 + '2';//结果为‘62’;运算是从左到右的,会分步运算出结果; var results = 4 + true;//结果为 5,说明在运算时,会将true 转换为数字 1 ,将false转换为数字 0 ,null转换为 0,undefined 转换为NaN; var results = 4 + 2;//结果为 6 var results = 4 * '2';//结果为 8 var results = 4 / '2';//结果为 2 var results = 4 - '2';//结果为 2检查两个对象是否相等时,比较的是指向对象的引用;用== 或者 === 都行;
var objA = {a:'a',b:'b'}; var objB = {a:'a',b:'b'}; var objC = objA; objA === objB;//false; objA === objC;//true;当用于条件表达式时,会将一些值视为true或者false,这些值被称为真值或假值,除去假值外,其他所有都视为真值,JavaScript中的假值有五种,示例如下; undefined null 0 空字符串 (就算只有空格也不算空字符串) ‘’ “” NaN
" "== true;//结果为false if(" "){ console.log("Y"); }else{ console.log("N"); }//输出为“Y”,说明只有当用于条件表达式时,只包含空格的字符串才算真值;当需要调用方法时,会临时创建字符串对象,在调用完毕,字符串回归基本类型;
var fact = "This is a prime number";//创建时为字符串基本类型 if(fact.substring(10,15) === "prime"){//fact.substring(10,15) 调用方法时,JavaScript在幕后将fact暂时转换为字符串对象,调用方法结束后,恢复为基本类型字符串; alert(fact);//此处调用的是基本类型字符串; }JavaScript会在需要时将字符串变为对象,使用时将其视为对象就行,普通创建方法只会创建基本类型字符串,使用特殊方法(对象构造函数)创建时,才会创建字符串对象,随时随地可用typeof来验证字符串为基本类型还是对象;布尔值和数字的机制也和字符串类似; 字符串对象的常用方法:https://www.w3school.com.cn/js/js_string_methods.asp
初稿:2020年7月1日23:15:53;