javascript第二遍基础学习笔记(一)
1、兼容xhtml方法:
<script>
//<![CDATA[
...
...
//]]>
</script>
2、文档模式:
IE5.5引入,最初包含2种:混杂和标准模式;后IE又提出了准标准模式;文档开始未声明文档类型,浏览器默认会开启混杂模式。
3、noscript标签用以提示浏览器不支持脚本。
4、语法:
4-1、区分大小写:ECMAScript中的一切都是区分大小写的(如变量、函数名、操作符...)。
4-2、标识符:
第一个字符必须是字母、下划线或美元符($);
其余字符可以是字符、下划线、美元符或数字;
(注:标识符的字母也可以包含扩展的ASCII或Unicode字母字符)
4-3、注释:单行和多行(//或/**/).
4-4、严格模式:ECMAScript5中引入了严格模式的概念,通过在代码块的顶端加入 "use strict" 来启动严格模式。
4-5、语句:其由分好结尾,但可省略,则其由解释器确定语句结尾。(注:个人理解加分号是一种好的编程习惯)
5、变量:ECMAScript的变量是松散类型的,可以保存任何类型的数据。(使用 var 定义申明变量)。
注意:用 var 定义的变量将是其作用域中的局部变量;
不使用 var 定义的变量将会是全局变量(但不推荐这样做),但在严格模式下,这样定义变量会报错(ReferenceError);
6、数据类型:
5种基本类型(Undefined,Null,Boolean,Number,String)和一个Object(对象)类型。
可以使用typeof初步检测数据类型。
Object.prototype.toString.call(null); // [object Null]
typeof null; //object
6-1、Undefined类型:
其只有一个值,即undefined,定义未初始化的变量就是这个值。
使用typeof检测 未定义的变量 和 定义但未初始化的变量 时,其结果都为undefined,但使用未定义的变量会报错。
6-2、Null类型:
其也只有一个值,即null,从逻辑角度看,其值的表示是一个空指针(这正是typeof检测其实object的原因)。
实际上undefined值是派生自null值,所以
console.log(undefined == null); //true
console.log(undefined === null); //false
6-3、Boolean类型:
其值有2个:true和false(区分大小写);
可以使用Boolean()来转换其他类型的数据为Boolean的值,对应关系如:
类型 转换为true 转换为false
Boolean true false
String 任何非空字符串 空字符串
Number 任何非零数字值 0或NaN
Object 任何对象 null
Undefined undefined
6-4、Number类型:
其使用IEEE754格式来表示;数字字面量格式:十进制、八进制(第一位必须是零,在严格模式下无效)、十六进制(前2位必须是0x(零));
6-4.1、浮点数:
其小数点前可以没整数,但小数点后必须有;
其最高精确度是17位小数,所以其计算会有舍入误差,如:
console.log(0.1+0.2==0.3); //false
6-4.2、数值范围:
最大值(Number.MAX_VALUE)和最小值(Number.MIN_VALUE);正无穷(Infinity)和负无穷(-Infinity);
可以使用 isFinite() 函数检测数值是否是有穷的,返回true表示介于最小和最大之间;
6-4.3、NaN:
即非数值(not a number)是一个特殊的数值;其包含2个特点:任何涉及NaN的操作返回都是NaN和其与任何(包括自己)不相等 console.log(NaN==NaN); //false ;
6-4.3、数值转换:
有3个方法:Number()、parseInt()和parseFloat();第一个适合任何类型,后面2个转换字符串类型;
Number的规则:
、Boolean类型的:true -> ;false -> ;
、null -> ;
、undefined -> NaN;
、字符串类型的:
只包含数字(包括正负号),转换为十进制数(会忽略前导零);
有效浮点格式(会忽略前导零);
有效十六进制格式(如0xf);
空字符串 -> ;
另外的都是 NaN;
、对象的先valueOf,如果为NaN再使用toString;
parseInt()和parseFloat()则是尽可能的将字符串转化为数值(会忽略字符串前面的空格,直到找到第一个非空格字符);
parseInt()在ECMAScript3和5中对八进制字面量的解析会有分歧
var num = parseInt("070"); //3中认为其是八进制,转换为十进制就是56,5中则是0(八进制0的前导无效)
(注:parseFloat()会忽略前导零)
为此parseInt()提供第二个参数指定转换时的基数。
6-5、String类型:
其由零或多个16位Unicode字符组成;
其还包含了特殊的字符字面量,也叫转义字符;
特点,其是不可变的;
类型转换:toString()和String();
最新文章
- margin折叠-从子元素margin-top影响父元素引出的问题
- 新技术≠颠覆:CIO 要有战略耐心
- [知识整理]Java集合(二) - Set
- PLSQL Developer不支持Oracle 64位客户端解决方法
- PS网页设计教程XXVII——设计一个大胆和充满活力的作品集
- iOS 获取当前时间 年、月、日、周几
- 容易被忽略的事----sql语句中select语句的执行顺序
- alter和alert的一些问题
- 如何快速查看linux的发行版信息
- 第1组UI组件:布局管理器
- WPF布局系统[转]
- JQuery AJAX介绍
- c语言结构体排序示例
- 在内存充足时malloc函数分配内存失败的原因及解决
- CF #April Fools Day Contest 2016 E Out of Controls
- Apache kafka 工作原理介绍
- 利用 Scrapy 爬取知乎用户信息
- Python+Tkinter 实现计算器功能
- git操作大全
- spring查看生成的cglib代理类源码详解