js高级一
2021-04-21 16:27
标签:typeof 指针 eof 例子 划线 大小 角度 isp 资源 一:script 1.带有 src 属性的标签之间再 包含额外的 JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码 会被忽略。 2.defer 表示脚本延迟到文档完全被解析和显示后再执行,只对外部脚本文件有效。IE7及更早版本对嵌入脚本也支持这个属性。 3.async 表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或 等待加载其他脚本。只对外部脚本文件有效。 在加载多个JS脚本的时候,async是无顺序的加载,而defer是有顺序的加载。 二:数据类型 1.标识符:就是指变量 函数 属性的名字或者函数的参数 可以按照下列的格式规则组合起来的一个或多个字符 ① 第一个字符必须是字母 下划线(_)或者美元符号$ ②其他字符可以使字母 下划线 美元符号或数字 2.关键字:用户表示控制语句的开始或结束 或用户这行特定的操作等,关键字不能用作标识符 3.数据类型:Undefined Null Boolean Number String Object 六类, ①undefined和null 都是只有一个值的数据类型 Undefined类型只有一个值 即特殊的undefined NULL类型只有一个值的数据类型 这个特殊的值是NULL ②Boolean 该类型只有两个字面值: true和false 区分大小写 True和False都不是布尔值只是标识符 ③Number 1)进制 最基本的数值字面量格式是十进制整数 除了十进制 整数还可以通过八进制和十六进制的字面值表示 八进制第一位必须是0,然后是八进制数字序列(0-7) 如果字面值中的数值超出范围 那么第一位0将被忽略后面的数值将被当做十进制数值解析 十六进制字面值前面两位必须是0x 后跟任何十六进制数字(0-9 A-F) 字母a-f可以大写 也可以小写 2)NaN NaN 即非数值是一个特殊的数值 这个数值用于表示一个未来要返回数值的操作数未返回数值的情况(这样就不会抛出错误) isNaN() 这个函数接受一个参数,该参数可以 是任何类型,而函数会帮我们确定这个参数是否“不是数值”。isNaN()在接收到一个值之后,会尝试 将这个值转换为数值。某些不是数值的值会直接转换为数值 3)数值转换 有 3个函数可以把非数值转换为数值:Number()、parseInt()和 parseFloat() 第一个函数,即转型函数 Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。这 3个 函数对于同样的输入会有返回不同的结果。 Number() 函数的转换规则 parseInt() 函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到第一个非空格字符。如果第一个字符不是数字字符或者负号,parseInt() 就会返回 NaN;也就是说,用 parseInt()转换空字符串会返回 NaN(Number()对空字符返回 0)。如 果第一个字符是数字字符,parseInt()会继续解析第二个字符,直到解析完所有后续字符或者遇到了 一个非数字字符 parseFloat() 也是从第一个字符(位置 0)开始解析每个字符。而且 也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。也就是说,字符串中的第 一个小数点是有效的,而第二个小数点就是无效的了, 除了第一个小数点有效之外,parseFloat()与 parseInt()的第二个区别在于它始终都会忽略前导的零。parseFloat()可以识别前面讨论过的所有浮点数值格式,也包括十进制整数格式。但十六进制格 式的字符串则始终会被转换成 0 由于 parseFloat()只解析十进制值,因此它没有用第二个参数指定基 数的用法。后还要注意一点:如果字符串包含的是一个可解析为整数的数(没有小数点,或者小数点后 都是零),parseFloat()会返回整数 所以一个忽略前面空格一个忽略前面零 ④String 转换为字符串 要把一个值转换为一个字符串有两种方式。第一种是使用几乎每个值都有的 toString()方法。这个方法唯一要做的就是返回相应值的字符串表现 数值、布尔值、对象和字符串值(没错,每个字符串也都有一个 toString()方法,该方法返回字 符串的一个副本)都有 toString()方法。但 null 和 undefined 值没有这个方法。 在不知道要转换的值是不是 null 或 undefined 的情况下,还可以使用转型函数 String(),这个 函数能够将任何类型的值转换为字符串。String()函数遵循下列转换规则: ⑤Object 对象其实就是一组数据和功能的集合。对象可以通过执行 new 操作符后跟要创建的对象类型的名称来创建。而创建 Object 类型的实例并为其添加属性和(或)方法,就可以创建自定 义对象 var o = new Object(); Object 类型所具有的任何属性和方法也同样存在于更具体的对象中。 Object 的每个实例都具有下列属性和方法。 js高级一 标签:typeof 指针 eof 例子 划线 大小 角度 isp 资源 原文地址:https://www.cnblogs.com/yangjie-space/p/12246797.htmltypeof() 检测数据类型返回下列字符串
‘undefined‘ 如果这个值未定义
‘boolean‘ 如果这个值是布尔值
‘string‘ 如果这个值是字符串
‘number‘ 如果这个值是数值
‘object‘ 如果这个值是对象或null
‘function‘ 如果这个值是函数
在使用var声明变量但未对其加以初始化时 这个变量的值就是undefined
对于尚未声明的变量 只能执行一项操作 即使用typeof操作符检测其数据类型返回的是undefined
var message
// var age
alert(message); //弹窗‘undefined‘
// alert(age); //产生错误
alert(typeof message); //弹窗‘undefined‘
alert(typeof age); //弹窗‘undefined‘
从逻辑角度看NULL值表示一个空对象指针,这也正是使用typeof操作符检测null时值会返回"object"的原因
var message = null;
alert( typeof message); //弹窗‘object‘
如果定义的变量准备在将来用于保存对象 那么最好将该变量初始化为null 而不是其他值 这样一来只要检测null值就可以知道相应的变量是否已经保存了一个对象的引用
if( message != null){
//对message对象执行某些操作
}
实际上 undefined的值是派生自null值得
alert( null ==undefined);//true
要将一个值转换为其对应的boolean 可以调用Boolean()
var message = "Hello world!";
var messageAsBoolean = Boolean(message
可以对任何数据类型的值调用 Boolean()函数,而且总会返回一个 Boolean 值。至于返回的 这个值是 true 还是 false,取决于要转换值的数据类型及其实际值。下表给出了各种数据类型及其对 应的转换规则。
数据类型
转换为true的值
转换为false的值
Boolean
true
false
string
任何非空字符串
‘‘(空字符串)
Number
任何非零数字值
0和NaN
Object
任何对象
null
undefined
undefined
这些转换规则对理解流控制语句(如 if 语句)自动执行相应的 Boolean 转换非常重要var octalNum1 = 070; // 八进制的 56
var octalNum2 = 079; // 无效的八进制数值——解析为 79
var octalNum3 = 08; // 无效的八进制数值——解析为 8
八进制字面量在严格模式下是无效的,会导致支持的 JavaScript引擎抛出
var hexNum1 = 0xA; // 十六进制的 10
var hexNum2 = 0x1f; // 十六进制的 31
在进行算术计算时,所有以八进制和十六进制表示的数值终都将被转换成十进制数值。
NaN本身有哦两个非同寻常的特点
1.任何涉及NaN的操作都会返回NaN
2.NaN与任何值都不相等 包括NAN本身
alert(NaN == NaN); //false
alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10是一个数值)
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值 1)
var num1 = Number("Hello world!"); //NaN
var num2 = Number(""); //0
var num3 = Number("000011"); //11
var num4 = Number(true); //1
var num1 = parseInt("1234blue"); // 1234
var num2 = parseInt(""); // NaN
var num3 = parseInt("0xA"); // 10(十六进制数)
var num4 = parseInt(22.5); // 22
var num5 = parseInt("070"); // 56(八进制数)
var num6 = parseInt("70"); // 70(十进制数)
var num7 = parseInt("0xf"); // 15(十六进制数)
可以传入第二个参数作为基数 以哪种进制进行解析
var num1 = parseInt("AF", 16); //175
var num2 = parseInt("AF"); //NaN var num1 = parseFloat("1234blue"); //1234 (整数)
var num2 = parseFloat("0xA"); //0
var num3 = parseFloat("22.5"); //22.5
var num4 = parseFloat("22.34.5"); //22.34
var num5 = parseFloat("0908.5"); //908.5
var num6 = parseFloat("3.125e7"); //31250000
var age = 11;
var ageAsString = age.toString(); // 字符串"11"
var found = true;
var foundAsString = found.toString(); // 字符串"true"
可以传递一个参数:输出数值的基数。默认情况下,toString()方法以十进制格式返回数值的字符串表 示。而通过传递基数,toString()可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格 式表示的字符串值
var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"
var value1 = 10;
var value2 = true;
var value3 = null;
var value4;
alert(String(value1)); // "10"
alert(String(value2)); // "true"
alert(String(value3)); // "null"
alert(String(value4)); // "undefined"
比toString() 可以多转换null和undefined