js基础
来源:互联网 发布:建筑绘图软件 编辑:程序博客网 时间:2024/06/06 09:26
类型、值
☐ 1.数字、字符串、布尔值
☐ 2 函数、对象、数组
☐ 3Null和 undefined
☐ 4Date对象和Error对象
☐ 5 类型转换
☐ 6 全局对象
部分为参考别人代码 部分为自己原创
一 、数字
1.数字(number)是最基本的数据类型,
javascript不区别整型数值和浮点型数值。
javascript采用IEEE 754标准定义的64位浮点格式表示数字。
数字表示最大值是:2^1024约等于1.7976931348623157*10^308
最小值是:2^(-52)*2^(-1022)约等于5*10^(-324)。
2 浮点型直接量
JavaScript只有一种数字类型:浮点型;
JavaScript的数字可以用小数点写也可以不用,
例子:
var a= 3.14 //使用小数点
var b= 3 // 不使用小数点
var x =123e5 //12300000 123*10 的5次幂
var y = 123e-5 // .0.00123 123* 10的-5次幂
3.八进制和十六进制
如果前缀为 0,则JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
例:
var y=0377; // 八进制 var z=0xFF;// 十六进制
*注:绝不要在数字前面写零,除非您需要进行八进制转换
二、字符串
1.JavaScript 字符串用于存储和处理文本,字符串可以是插入到引号中的任何字符。你可以使用单引号或双引号.
例:
var carname = "Volvo XC60";
var carname = 'Volvo XC60';
你可以在字符串中使用引号,字符串中的引号不要与字符串的引号相同:
例:
var answer = "It's alright";
var answer ="He is called 'Johnny'";
var answer = 'Heis called "Johnny"';
你也可以在字符串添加转义字符来使用引号(\):
(转义字符反斜杠后加字符,可以表示字符串中无法出现的字符)
例:
var x = 'It\'s alright'; //It's alright
var y = "Heis called \"Johnny\""; //Heis called "Johnny"
2.字符串 长度
可以使用内置属性 length 来计算字符串的长度:
例:
<script>
var txt ="Hello World!";
document.write("<p>"+ txt.length + "</p>"); //12
vartxt="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.write("<p>"+ txt.length + "</p>"); // 26
</script>
3.数字转换字符
1.要把一个数字转换为字符串,只要给它添加一个空的字符串即可;
例:
var n_as_string = n + "" ;
可以使用string()函数;
例:
varstring _ value= String(number);
使用toString()方法:
string _ value=number.toString();
4 indexOf 查找字符串位置(查不到显示-1)
列:
var str ="Hello World"
document.write(str.indexOf("Hello"));//0
document.write(str.indexOf("")) //5
5 内容匹配( 匹配字符串是否存在 存在显示字符串 不存在显示null):match()
document.write(str.match( "World")); //
6替换内容(replace)
document.write(str.replace("World","123")); // Hello 123
三、布尔值
1. Boolean 类型值 (true 或者false). 一个布尔值代表一个“真值”,它说明了某个事物是真的还是假的
例子:
if(a==4) //判断a是否等于4
b= b+1; //如果相等 b就增加1
else
a = a+1; // 否则a加1
2. 布尔类型转换
如果布尔用在数值环境中, true 就转换成数字1,false 就转换为数字0.
如果布尔值用在字符串环境中,true 就转换为字符串“true”, false 就转换为 字符串 “false”
四 函数
JavaScript 使用关键字 function 定义函数,函数可以通过声明定义,也可以是一个表达式。
1. 定义函数(function)
function 函数名(){
函数体(); //代码块
}
注 (function) 必须是小写。
函数表达式
JavaScript 函数可以通过一个表达式定义。
函数表达式可以存储在变量中:
列:
var x =function (a, b) {return a * b}; //function (a, b) {return a * b}
自调用函数
函数表达式可以"自调用"。
自调用表达式会自动调用。
如果表达式后面紧跟 (),则会自动调用。
不能自调用声明的函数。
通过添加括号,来说明它是一个函数表达式:
<pid="demo"></p>
<script>
(function (){
document.getElementById("demo").innerHTML = "Hello! 我是自己调用的"; //Hello! 我是自己调用的
})();
</script>
函数可作为一个值使用
JavaScript 函数作为一个值使用:
<pid="demo">12</p>
<script>
functionmyFunction(a, b) {
return a * b;
}
var x =myFunction(4, 3);
document.getElementById("demo").innerHTML= x; // 12
</script>
五 对象
JavaScript中的所有事物都是对象:字符串、数值、数组、函数...
所有事物都是对象
JavaScript 提供多个内建对象,比如 String、Date、Array 等等。对象只是带有属性和方法的特殊数据类型。
l 布尔型可以是一个对象。
l 数字型可以是一个对象。
l 字符串也可以是一个对象
l 日期是一个对象
l 数学和正则表达式也是对象
l 数组是一个对象
l 甚至函数也可以是对象
此外,JavaScript 允许自定义对象。
自定义对象:
1. 定义并创建对象实例
2. 使用函数定义对象,然后创建新的对象实例
例1:
1 people = new Object(); //创建people对象
people .name= "ac"
people.age="15"
document.write("name:"+people.name+",age:"+people.age);//name:ac age:15
2
people={name:"ic",age:"15"};
document.write("name:+people.name+",age:"+people.age");//name:ac age:15
例2:
function People(name,age){
this.name=name
this.age=age
}
son =new people("ac","15")
document.write("name:+son.name+",age:"+son.age");//name:ac age:15
六 数组
1. 数组对象是使用单独的变量名来存储一系列的值。
数组可以用一个变量名存储所有的值,并且可以用变量名访问任何一个值。
数组中的每个元素都有自己的的ID,以便它可以很容易地被访问到。
2. 创建一个数组
创建一个数组,有三种方法。
下面的代码定义了一个名为 myCars的数组对象:
1: 常规方式:
var myCars=newArray();
myCars[0]="Saab";
myCars[1]="Volvo";
myCars[2]="BMW";
2: 简洁方式:
var myCars=newArray("Saab","Volvo","BMW");
3: 字面:
var myCars=["Saab","Volvo","BMW"];
*索引值 0是第一个 1是第二个
六 null和 undefined
Null
在 JavaScript中 null 表示 "什么都没有"。
null是一个只有一个值的特殊类型。表示一个空对象引用。
*用typeof检测 null 返回是object。
你可以设置为 null 来清空对象:
例
var person =null; // 值为 null(空), 但类型为对象
你可以设置为 undefined来清空对象:
例
var person =undefined; // 值为 undefined, 类型为 undefined
Undefined
在 JavaScript中, undefined是一个没有设置值的变量。
typeof 一个没有值的变量会返回undefined。
例
varperson; // 值为 undefined(空), 类型是undefined
任何变量都可以通过设置值为 undefined 来清空。 类型为undefined.
例
person =undefined; // 值为 undefined, 类型是undefined
Undefined和 Null 的区别
实例
null 和 undefined 的值相等,但类型不等:
typeofundefined // undefined
typeofnull // object
null ===undefined //false (类型)
null ==undefined //true
七、Date对象
Date 对象用于处理日期和时间。
创建 Date 对象的语法:
var date=new Date() ;
document.write(ate()) ; // 获取当日的日期
document.write(date.getFullYear()); // 获取年份
date.setfullYear(2010.1.1); //自定义日期
document..write(date); // 打印日期
八 error对象
一、什么是错误处理?
在介绍Error对象之前,先说说什么是错误处理。错误,指程序中非正常运行状态,在其他编程语言中称为"异常"或"错误",解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。通过使用JS提供的异常错误语句,可以用结构化的方式来捕捉发生的错误,让异常处理代码与核心业务代码实现分离,最终使我们能够集中精力编写主业务功能代码。简言之:在程序执行过程中,即使程序出错,也能保证不会异常中断的机制。
二、JS种的错误的类型(6种)
1.SyntaxError:语法错误
2.ReferenceError:引用错误 要用的东西没找到
3.RangeError:范围错误 专指参数超范围
4.TypeError:类型错误 错误的调用了对象的方法
5.EvalError: eval()方法错误的使用
6.URIError: url地址错误
前4种是我们开发的时候经常遇到,需要熟练记住,后两种比较少见,了解即可。
三、Error对象
Error:封装错误信息的对象,在发生错误时,自动创建两个属性:
err.name :错误的名称/错误的类型
err.message: 错误的提示信息
如何使用:
try{
可能出现错误的语句
}catch(err){
//err:自动获得错误对象——不可省略
一旦出错,才执行的错误处理代码: 提示错误, 记录日志
}finally{
无论是否出错,都必须执行的代码: 释放资源
}
九 类型转换
Number() 转换为数字,String() 转换为字符串, Boolean() 转化为布尔值。
JavaScript数据类型
在 JavaScript中有 5 种不同的数据类型:
l string(字符串)
l number(数字)
l boolean(布尔值)
l object(对象)
l function(函数)
3 种对象类型:
l Object(对象)
l Date(日期)
l Array(数组)
2 个不包含任何值的数据类型:
l null(空)
l undefined(没找到值)
typeof操作符
你可以使用 typeof 操作符来查看 JavaScript 变量的数据类型。
例:
typeof"John" // 返回 string
typeof3.14 // 返回 number
typeof NaN // 返回 number
typeoffalse // 返回 boolean
typeof[1,2,3,4] //返回 object
typeof{name:'John', age:34} // 返回 object
typeof newDate() // 返回 object
typeoffunction () {} // 返回 function
typeofmyCar // 返回 undefined (如果 myCar 没有声明)
typeofnull // 返回 object
* NaN 的数据类型是 number
l 数组(Array)的数据类型是 object
l 日期(Date)的数据类型为 object
l null的数据类型是 object
l 未定义变量的数据类型为 undefined
如果对象是 JavaScript Array或 JavaScript Date ,我们就无法通过typeof 来判断他们的类型,因为都是 返回 Object。
constructor属性
constructor 属性返回所有 JavaScript 变量的构造函数。
"John".constructor // 返回函数 String() { [native code] }
(3.14).constructor // 返回函数 Number() { [native code] }
false.constructor // 返回函数 Boolean() { [native code] }
[1,2,3,4].constructor // 返回函数 Array() { [native code] }
{name:'John',age:34}.constructor // 返回函数 Object() {[native code] }
newDate().constructor // 返回函数 Date() { [native code] }
function (){}.constructor // 返回函数 Function(){ [native code] }
JavaScript类型转换
JavaScript 变量可以转换为新变量或其他数据类型:
l 通过使用 JavaScript 函数
l 通过 JavaScript 自身自动转换
将数字转换为字符串
全局方法 String() 可以将数字转换为字符串。
该方法可用于任何类型的数字,字母,变量,表达式:
String(x) //将变量 x 转换为字符串并返回
String(123) // 将数字 123 转换为字符串并返回
String(100 +23) // 将数字表达式转换为字符串并返回
将布尔值转换为字符串
全局方法 String() 可以将布尔值转换为字符串。
String(false) // 返回 "false"
String(true) // 返回 "true"
Boolean 方法toString() 也有相同的效果。
false.toString() // 返回 "false"
true.toString() // 返回 "true"
将日期转换为字符串
Date() 返回字符串。
Date() // 返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W.Europe Daylight Time)
全局方法String() 可以将日期对象转换为字符串。
String(newDate()) // 返回 Thu Jul 17 201415:38:19 GMT+0200 (W. Europe Daylight Time)
Date 方法toString() 也有相同的效果。
例:obj = new Date()
obj.toString() //返回 Thu Jul 17 2014 15:38:19 GMT+0200 (W.Europe Daylight Time)
将字符串转换为数字
全局方法 Number() 可以将字符串转换为数字。
字符串包含数字(如 "3.14") 转换为数字 (如 3.14).
空字符串转换为 0。
其他的字符串会转换为NaN (不是个数字)。
Number("3.14") // 返回 3.14
Number("") // 返回 0
Number("") // 返回 0
Number("9988") // 返回 NaN
将布尔值转换为数字
全局方法 Number() 可将布尔值转换为数字。
Number(false) // 返回 0
Number(true) // 返回 1
将日期转换为数字
全局方法 Number() 可将日期转换为数字。
d = newDate();
Number(d) // 返回 1404568027739
日期方法 getTime() 也有相同的效果。
d = newDate();
d.getTime() // 返回 1404568027739
全局对象
javascript中的全局对象,全局对象是一个父级的构造,所有的其他的对象,变量和函数都属于全局对象。(还有一种是Object对象,javascript中的其他对象都是从Object继承而来,包括内置对象。)
1 全局对象的特性
l 全局对象只是一个对象,而不是类。既没有构造函数,也无法实例化一个新的全局对象。
l 全局对象不是任何对象的属性,所以它没有名称。
l 全局对象是预定义的对象,作为 JavaScript 的全局函数和全局属性的占位符。
l 在顶层 JavaScript 代码中,可以用关键字 this 引用全局对象。
l 全局对象是作用域链的头,意味着在顶层 JavaScript 中声明的所有变量都将成为全局对象的属性。
l 通常不必用 this 引用全局对象,因为所有非限定性的变量和函数名都会作为全局对象的属性来查询。
l 通过使用全局对象,可以访问所有其他预定义的对象、函数和属性。
l 全局对象的预定义属性都是可枚举的,所以可以用 for/in 循环列出所有隐式或显式声明全局变量
全局对象是顶层的上下文环境,其他所有对象都属于全局对象。在web开发中,全局对象为作用域提供了最顶层的上下文环境,并为web开发所依赖的某些高层浏览器功能提供了共享的平台。除此之外,全局对象还包括以下内容:
l javascript中所有内置的对象
l javascript中常用的内置属性
l javascript中某些内置函数
l 某些特定的浏览器对象,例如document和window对象
对于作用域,全局对象也提供了非常有用的功能。当引用一个变量时,在当前作用域中并未找到该变量时,解释器就会沿着作用域链向上移动,并沿着作用域链查找该变量,直到查到全局对象。如果始终无法找到该变量,解释器会认为该变量不存在,并触发一个异常,当在全局作用域中时,可以使用关键字this访问全局对象。
2 浏览器中的全局对象
在浏览器中,全局对象有着特殊的用途。除保存javascript中所有普通功能和作为全局上下文环境外,还容纳了大量特定于浏览器的对象。例如window和document对象。window对象很有意思,window属性是一个自引用的成员。既可以通过window.property访问变量,也可以简单的使用property来访问变量。这是因为javascript具有一个全局对象,同时又具有一个本质上与其相同的window对象。
在浏览器中,每个窗口,iFrame和选项卡都具有自己唯一的全局对象。在某些情况下,可以通过DOM在这些作用域之间进行通信,但在通常情况下这些作用域都是相互独立和隔离的。
js运行时内置了一个Global对象
这个Global对象跟运行环境有关。在浏览器运行环境中。Global就是window对象。
当你在浏览器环境中,直接使用一个未经定义的变量,
例如foo=123;那么foo这个变量自动声明为全局变量。变量引用自动挂载到了Global对象,即window对象上。
Global对象上的属性和函数都是js运行时提供的。例如escape\encodeURIComponent\decodeURIComponent\Regex\Infinite等等。。。
跟继承没有关系,你可以认为浏览器默认提供给你使用的对象,都放到了Global对象中,而window对象又恰好就是这个Global对象。实际上,在浏览器的内部实现中,隐藏了真正的Global对象,而把window对象作为了Global对象的替身。一切对Global对象的操作(间接操作),都会映射到window对象上,反之亦然。这样window对象就成了Global对象的替身。而window对象同时又作为Global对象的一个属性。这样,真正的Global对象就被隐藏了。
window对象虽然是浏览器环境下的jsGloabl对象。但并不意味着window对象下的所有方法和属性都是js原生提供的。原生对象只有很少一部分,浏览器环境中,大量的功能都是由宿主对象完成的。
代码如下:
var strict = (function(){return!this;}());
如果在JavaScript程序中创建了全局变量,那么这个全局变量会成为全局对象中的一个属性。
代码如下:
var a = this;
console.log(a);//window object
console.log(a.outerWidth);//accesswindow object's attribute
console.log(a.isNaN);//access JSglobal object's attribute
x = "test";
console.log(a.x);//access newlycreated global variable value
- js基础
- js基础
- js基础
- js基础
- JS基础
- js基础
- js基础
- JS基础
- js基础
- js基础
- js基础
- js基础
- JS基础
- js 基础
- js-基础
- js基础
- js基础
- js基础
- OutputStream和InputStream,Writer和reader
- 使用bootstrap之轮播插件不自动播放的问题和播放时间间隔的问题解决方法
- Nodejs Express4.x开发框架
- 麦肯锡并不神秘,方法论铸就传奇
- DrawerLayout布局代码块,解析网络数据代码块,多条目适配器代码块,字节流转字符串代码块
- js基础
- PHP----分页类
- POJ 1700 Crossing River(贪心)
- http://blog.csdn.net/aaa1050070637/article/details/54913160
- maven工程创建后没有src/main/java目录
- oracle中decode的使用以及如果使用decode进行范围匹配
- 删除系统服务
- tcp-三次握手与四次挥手
- ofbiz后台系统二级菜单的配置——组件菜单