js高级程序设计学习笔记1
来源:互联网 发布:2017刷钻软件 编辑:程序博客网 时间:2024/06/04 19:47
基本数据类型
ECMAScript 5中简单数据类型:Undefined,Null,Boolean,Number,String,1中复杂类型Object.
typeof操作符:判断变量的数据类型。如果是函数则返回function.
对未经初始化和未经声明的变量执行typeof操作符都将返回undefined。typeof(null)返回object.
可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。
空字符串,0和NaN,null,undefined会转换为false.
Number类型:
如果八进制的数值超出了范围,那么前导0被忽略,后面的数值被当做十进制数値解析。
var octalNum1 = 070;//有效的八进制数56
var octalNum2 = 079;//无效的八进制数,解析为79.严格模式下会抛出错误。
保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会适时的将浮点数值转换为整数值。例如:
var num1 = 1.;//小数点后面没有数字—解析为1
var num2 = 10.0//解析为10
浮点数值的最好精度是17位小数。但在进行算术计算时其精度远远不如整数。例如0.1+0.2不等于0.3.而是等于0.30000000000000004。所以浮点数计算会产生舍入误差的问题。
数值范围:Number.MIN_VALUE(5e-325)Number.MAX_VALUE(1.7976931348623157e+308)
超过则会被转换为特殊的Infinity值。-Infinity(负无穷) Infinity(正无穷)
可用isFinite()函数判断是否是有穷的。
NaN
即非数值(not a number),是一个特殊的数值。这个数值用来表示一个本来要返回熟知的操作数未返回数值的情况。在ECMAScript,任何数值除以0会返回NaN,因此不会影响其他代码的执行。
任何涉及NaN的操作都会返回NaN.NaN与任何值都不想等,包括他本身。
isNaN()函数:传入任何不能被转换为数值的参数都会返回true.
数值转换:Number(),parseInt(),parseFloat().
parseInt(“1234bule”) = 1234;
parseInt(“”) = NaN;
var num = parseInt(“0xAF”,16)可以传进几进制。
var num = parseInt(“AF”,16)这样也是正确的。
toString()方法默认以十进制格式返回数值的字符串表示。也可以传递基数,可输出二进制、八进制等。例如:
var num = 10;
num.toString(2);//1010
Object类型
每个object都有如下属性和方法:
Constructor:构造函数。
hasOwnProperty(propertyName):检查给定的属性在当前对象实例中是否存在。
isPropertyOf(Object):检查传入的对象是否是另外一个对象的原型。
propertyIsEnumerable(propertyName):检查给定的属性是否能够使用for-in语句来枚举。
toString():返回对象的字符串表示.
toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
valueOf():返回对象的字符串、数值、或布尔值表示。
注意:BOM和DOM中的对象都属于宿主对象,不一定会继承object.
var num1 = 25;
var num2 = ~num1;//-26
按位非操作的本质:操作数的负值减一。
var result = 25&3 //1
var result = 25|3 //27
var result = 25^3 //26 按位异或。
var oldValue = 2;
var newValue = oldValue<<5;//向左移动5位。为64.
var newValue2 = newValue>>5;//向右移动5位。为2
var oldValue = 64;
var newValue = oldValue>>>5;//无符号右移,为2
负值的无符号右移与有符号右移是不同的,结果会变得非常之大。。因为无符号移动是以0来填充空位的。
undefinede = 0//false;
null == 0;//false;
null == undefinned;//true;
在比较相等性之前,不能讲null和undefined转换成任何值。
with语句的作用是将代码的作用域设置到一个特定的对象中。例如:
var qs = location.search.substring(1);var hostName = location.hostname;var url = location.href;//改用with语句。with(location){ var qs = search.substring(1); var hostName = hostname; var url = .href; }
理解ECMAScript函数的参数:
在内部使用一个数组来表示,函数接收到的始终是数组,而不关心数组中包含哪些参数。在函数体内可以通过arguments对象来访问这个参数数组。arguments对象只是与数组类似,并不是Array的实例。
function sayhi(){ alert("hello"+arguments[0] +","+arguments[1]);alert(arguments.length);}function doAdd(num1,num2){ arguments[1] = 10;//num2也会变成10.他们的内存空间是独立的。而且修改命名参数不会改变arguemtns中对应的值。没有传递的命名参数会自动赋予undefined值。 alert(arguments[0]+num2);}
因此js不存在所谓的重载。
- js高级程序设计学习笔记1
- js高级程序设计笔记1
- js高级程序设计学习笔记2
- js 高级程序设计笔记
- JS高级程序设计-笔记
- js高级程序设计学习笔记——基本概念
- JavaScript高级程序设计学习笔记一JS简介
- 《js高级程序设计》学习笔记--5.引用类型
- JavaScript高级程序设计学习笔记1: 基础
- 【JavsScript高级程序设计】学习笔记[1]
- JavaScript高级程序设计学习笔记(1)
- JavaScript高级程序设计学习笔记(1-4)
- javaScript高级程序设计学习笔记(1)
- JavaScript高级程序设计-学习笔记1
- javascript高级程序设计学习笔记
- JavaScript高级程序设计 学习笔记
- javascript高级程序设计学习笔记
- JavaScript高级程序设计--学习笔记
- 实际开发中对变量命名方式的总结
- 执行力:公开自己的目标,接受群众的监督,用压力确保执行力
- C#语法小知识(二十三)重载运算符
- android 从顶层到底层 学习笔记--- View树
- 文章逻辑
- js高级程序设计学习笔记1
- Java 多线程线程池 - 线程池原理
- c# multi thread programming ,c# 多线程编程
- Xcode8禁止系统log&真机调试NSLog无输出
- Javascript比较Day3
- LeetCode刷题系列_3题
- Git 的基本使用方法
- PHP 的错误机制总结
- discuz学习记录:在模板文件中循环显示数组中的值