JavaScript
来源:互联网 发布:宁波seo大牛 编辑:程序博客网 时间:2024/06/05 05:21
JavaScript是一种弱类型的语言:变量的类型可以随着赋值的类型不同而发生变化
//强类型的语言:一个变量一旦声明为某种类型,该变量的数据类型就不可再变
动态的语言:可以在程序运行的过程中,给对象增加或删除成员(属性、方法)
基于原型的编程语言 没有类只有原型对象object 所有的对象都继承原型对象
JavaScript是解释型的语言 跨平台
JavaScript
变量 方法 对象 数组(没有类)
三种方式
行内:<标签 事件属性="javascript:JS代码">
内嵌:<script type="text/javascript">//JS代码</script>
外链:<script src="myJS"type="text/javascript"></script>
JavaScript
4种基本数据类型(原始类型):Undefined、Boolean、Number、String
1种引用类型:Object
Undefined只有一个值:undefined
Boolean只有两个值:true false
Number存储整数小数和NaN(Not a Number)
String存储字符串 JS 中单双引号的值都是字符串
1种引用类型:Object
Object 存储对象和null
声明变量 关键字var
var 变量名;
var 变量名= 值;
注意:
var不是数据类型 声明变量在未赋值之前默认值都是undefined
JavaScript中关键字var和语句的结束符(;)都可以省略,但应避免这样做
JavaScript中任何变量都必须初始化之后才能使用
命名规则和Java一样,也要区分大小写
JavaScript中没有类,只有对象。所有对象都继承原型对象(object对象);所以,JS也被称为基于原型的编程语言
关键字:typeof
用于获取变量的数据类型
语法:typeof 对象
instanceof 和java中一样 可以判断数据是否属于弄一类型
<script type="text/javascript">
var v;
//获取变量v的数据类型
alert(typeof v);
v=1;
alert(typeof v);
v=abc
alert(typeof v);
</script>
typeof null 结果是Object
Undefined
当声明的变量未初始化时 该变量的默认值就是undefined
当时有typeof获取未声明的变量时 得到的也是undefined 但是注意未声明的变量只能和typeof一起使用 否则报错
NaN==NaN 结果为false
NaN 表示 Not a Number
var vn= NaN;
alert(vn==NaN);//false
判断一个变量的值是否是NaN使用isNaN方法 :isNaN
var vn= NaN;
alert(isNaN(vn));//true
var v1=1;
var v2=1;
var v3=“1”;
alert ()
String
常用属性 length
常用方法
charAt 根据下标或取字符
indexOf 指定字符在字符串中下标(从左往右 第一次出现的)
lastIndexOf 指定字符在字符串中下标(从右往左 第一次出现的)
substring 截取字符串
toLowerCase 转换成小写
toUpperCase 转换成大写
数据类型的转换
转换成字符串;
对象.toString()
var v=13;
alert(typeof v);//number
var str = v.toString();
alert(typeof v);//number
alert(typeof str);//string
new String(被转换数据);
var s = new String(13);
alert(typeif s);//弹出Object javascript中所有new出来的数据 都是基础原型对象object的 所以类型也是object
alert(s)//弹出13
数字转换成字符串
两种模式
默认模式:以十进制转化
基模式:toString(进制)
var num=10;
alert(num.toString(2));弹出1010
alert(num.toString(8));弹出12
转换成数字
parseInt ()(转换数据时 一个字符一个字符转换 遇到第一个不能被转换成数字的字符时 停止转换 并保留之前转换成功的数值)
parseFloat ()(转换数据时 一个字符一个字符转换 遇到第一个不能被转换成数字的字符时 停止转换 并保留之前转换成功的数值)
Number()(转换数据时 将整个字符串统一转换 如果转换失败 则返回NaN)
var str="123.123"
var int = parseInt(str);
alert(int);//123 将字符串转换成整型
var float = parseFloat(str);
alert(float);//123.123 将字符串转换成小数
var num = number(str);
alert(num);//123.123
var str="123.abc"//java中异常 类型转化异常
var int = parseInt(str);
alert(int);//123
var float = parseFloat(str);
alert(float);//123
var num = number(str);
alert(num);// NaN
转换成布尔值:Boolean();
var str1 =" ";
var str2 = null;
var str3 ;
var i = 0 ;
// false 空字符串("") 、数字0、undefined、null、
//除了以上四个值转换成Booler类型后的值为false,其他转换成Boolse类型后值为true
var b1 = new Boolean(str1);
var b2 = new Boolean(str2);
var b3 = new Boolean(str3);
var b4 = new Boolean(i);
alert(b1);//false
alert(b2);//false
alert(b3);//false
alert(b4);//false
undefind和null进行只比较值时结果为true
var un;
var nu = null;
alert(un==nu);//true
alert(un===nu);//false
运算符
算数、关系、逻辑、位、赋值、条件(?:)运算符都和java中一致
==和===(全等)
==只比较值是否相等;===即判断类型也判断值,只有都相同才为true
!=只比较值是否不相等;!==一个不相同结果就为true
注意:null==nudefined 结果为true
JS的底层实现undefined是从null派生出来的所以值相等;但是null===undefined结果为false 因为类型不同
流程控制
if 、 if-else 、 switch、for、while、do-while都和java中一样
java中的增强for循环主要是用于循环的集合,数组
for in语句:遍历对象的属性
语句for(var 变量 in 对象){}
var obj = new Object();
//动态的语言:可以在程序运行的过程中,为对象增加或删除成员(属性 方法)
//向对象添加一个属性name
obj.name="张三";
for(var property in obj){
alert(property);//name 循环获得的是对象的属性名
alert(obj[property]);//张三 获取name属性的值 对象[变量/字符串常量]
}
数组
var arr = new Array();
var arr = new Array(长度值);
var arr = new Array(元素1,元素n);
var arr = [元素1,元素n];
//数组长度不是固定的
var arr = ["a","b","c"];
for(var index in arr){
alert(index);//0 1 2 如果arr为数组 index 获得的就是下标
alert(arr[index]);// a b c
}
注意:
实用小括号 不能使用[]
new Array[长度值];×
删除数组元素:delete 数组名[下标]
使用增强for循环遍历数组
for(var v in arr){
//v获取的是下标不是属性值
}
方法
function(函数):有些书中把它列为一种数据类型,依据是typeof的结果中有function
方法没有返回值
申明方法
方式一:最常用的方式(建议使用)
function 方法名([参数列表]){
//方法体
[retuen [返回值];]
}
方式二:
var 变量名 = function([参数列表]){}
方式三:var 变量名 = new Function(["参数列表"][,"方法体"]);
参数列表直接使用变量名即可 不需要使用var 声明 不能有返回值类型
声明方法
JacaScript中方法也是一个对象,可以将方法复制给另一个变量;
var 变量名 = 方法名; //不能有小括号
调用
变量名m();//必须加小括号
方法对象也有属性和方法
length属性:获取形参的个数(最多25个)
valueOf 和 toString()方法 获取方法的源码
arguments
模拟函数重载:用arguments对象获取传入的参数
function doAdd(){
if(arguments.length==1){
alert(arguments[0]+5);}
else if(arguments.length==2){
alert(arguments[0]+arguments[1]);
}
}
doAdd(10);//输出15
doAdd(40,20);//输出60
创建对象
语法:var 变量 = new 原型对象();
访问对象属性的方式
1 对象.属性名
2 对象[变量]
关键字delete
JavaScript也被称为动态语言
可以在运行中删除或者减价对象的属性和方法
delete 删除对象属性或方法的引用
var o = new Object;
o.naem="张三";//添加属性name
o.m = function(){};//添加方法m
alert(o.naem); //输出张三
delete o.name;//删除属性name;
alert(o.name);//输出undefined
伪对象
包括布尔值 数字和字符串这些原始值 他们都是伪对象
伪对象是原始值 存储在栈内存上 并且具有属性和方法
库对象
内置对象(built-in object)
相当于Java中的类;只有Global和Math
通过Math获取随机数
alert(Math.random());
库地对象(native object)(含内置对象)
相当于Java中的类;
Object Function Array String Boolean Number Date RegExp(正则表达式) Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
宿主对象(host object): //所有BOMDOM对象BOM 浏览器对象模型和
DOM 文档对象模型对象(两类对象)
异常
JacaScript 没有throws
只有try、catch、finally和throw
功能和Java中一样
System.out.println();
document.write();
输出空格
document.write(" ")
换行
document.write("<br/>")
//强类型的语言:一个变量一旦声明为某种类型,该变量的数据类型就不可再变
动态的语言:可以在程序运行的过程中,给对象增加或删除成员(属性、方法)
基于原型的编程语言 没有类只有原型对象object 所有的对象都继承原型对象
JavaScript是解释型的语言 跨平台
JavaScript
变量 方法 对象 数组(没有类)
三种方式
行内:<标签 事件属性="javascript:JS代码">
内嵌:<script type="text/javascript">//JS代码</script>
外链:<script src="myJS"type="text/javascript"></script>
JavaScript
4种基本数据类型(原始类型):Undefined、Boolean、Number、String
1种引用类型:Object
Undefined只有一个值:undefined
Boolean只有两个值:true false
Number存储整数小数和NaN(Not a Number)
String存储字符串 JS 中单双引号的值都是字符串
1种引用类型:Object
Object 存储对象和null
声明变量 关键字var
var 变量名;
var 变量名= 值;
注意:
var不是数据类型 声明变量在未赋值之前默认值都是undefined
JavaScript中关键字var和语句的结束符(;)都可以省略,但应避免这样做
JavaScript中任何变量都必须初始化之后才能使用
命名规则和Java一样,也要区分大小写
JavaScript中没有类,只有对象。所有对象都继承原型对象(object对象);所以,JS也被称为基于原型的编程语言
关键字:typeof
用于获取变量的数据类型
语法:typeof 对象
instanceof 和java中一样 可以判断数据是否属于弄一类型
<script type="text/javascript">
var v;
//获取变量v的数据类型
alert(typeof v);
v=1;
alert(typeof v);
v=abc
alert(typeof v);
</script>
typeof null 结果是Object
Undefined
当声明的变量未初始化时 该变量的默认值就是undefined
当时有typeof获取未声明的变量时 得到的也是undefined 但是注意未声明的变量只能和typeof一起使用 否则报错
NaN==NaN 结果为false
NaN 表示 Not a Number
var vn= NaN;
alert(vn==NaN);//false
判断一个变量的值是否是NaN使用isNaN方法 :isNaN
var vn= NaN;
alert(isNaN(vn));//true
var v1=1;
var v2=1;
var v3=“1”;
alert ()
String
常用属性 length
常用方法
charAt 根据下标或取字符
indexOf 指定字符在字符串中下标(从左往右 第一次出现的)
lastIndexOf 指定字符在字符串中下标(从右往左 第一次出现的)
substring 截取字符串
toLowerCase 转换成小写
toUpperCase 转换成大写
数据类型的转换
转换成字符串;
对象.toString()
var v=13;
alert(typeof v);//number
var str = v.toString();
alert(typeof v);//number
alert(typeof str);//string
new String(被转换数据);
var s = new String(13);
alert(typeif s);//弹出Object javascript中所有new出来的数据 都是基础原型对象object的 所以类型也是object
alert(s)//弹出13
数字转换成字符串
两种模式
默认模式:以十进制转化
基模式:toString(进制)
var num=10;
alert(num.toString(2));弹出1010
alert(num.toString(8));弹出12
转换成数字
parseInt ()(转换数据时 一个字符一个字符转换 遇到第一个不能被转换成数字的字符时 停止转换 并保留之前转换成功的数值)
parseFloat ()(转换数据时 一个字符一个字符转换 遇到第一个不能被转换成数字的字符时 停止转换 并保留之前转换成功的数值)
Number()(转换数据时 将整个字符串统一转换 如果转换失败 则返回NaN)
var str="123.123"
var int = parseInt(str);
alert(int);//123 将字符串转换成整型
var float = parseFloat(str);
alert(float);//123.123 将字符串转换成小数
var num = number(str);
alert(num);//123.123
var str="123.abc"//java中异常 类型转化异常
var int = parseInt(str);
alert(int);//123
var float = parseFloat(str);
alert(float);//123
var num = number(str);
alert(num);// NaN
转换成布尔值:Boolean();
var str1 =" ";
var str2 = null;
var str3 ;
var i = 0 ;
// false 空字符串("") 、数字0、undefined、null、
//除了以上四个值转换成Booler类型后的值为false,其他转换成Boolse类型后值为true
var b1 = new Boolean(str1);
var b2 = new Boolean(str2);
var b3 = new Boolean(str3);
var b4 = new Boolean(i);
alert(b1);//false
alert(b2);//false
alert(b3);//false
alert(b4);//false
undefind和null进行只比较值时结果为true
var un;
var nu = null;
alert(un==nu);//true
alert(un===nu);//false
运算符
算数、关系、逻辑、位、赋值、条件(?:)运算符都和java中一致
==和===(全等)
==只比较值是否相等;===即判断类型也判断值,只有都相同才为true
!=只比较值是否不相等;!==一个不相同结果就为true
注意:null==nudefined 结果为true
JS的底层实现undefined是从null派生出来的所以值相等;但是null===undefined结果为false 因为类型不同
流程控制
if 、 if-else 、 switch、for、while、do-while都和java中一样
java中的增强for循环主要是用于循环的集合,数组
for in语句:遍历对象的属性
语句for(var 变量 in 对象){}
var obj = new Object();
//动态的语言:可以在程序运行的过程中,为对象增加或删除成员(属性 方法)
//向对象添加一个属性name
obj.name="张三";
for(var property in obj){
alert(property);//name 循环获得的是对象的属性名
alert(obj[property]);//张三 获取name属性的值 对象[变量/字符串常量]
}
数组
var arr = new Array();
var arr = new Array(长度值);
var arr = new Array(元素1,元素n);
var arr = [元素1,元素n];
//数组长度不是固定的
var arr = ["a","b","c"];
for(var index in arr){
alert(index);//0 1 2 如果arr为数组 index 获得的就是下标
alert(arr[index]);// a b c
}
注意:
实用小括号 不能使用[]
new Array[长度值];×
删除数组元素:delete 数组名[下标]
使用增强for循环遍历数组
for(var v in arr){
//v获取的是下标不是属性值
}
方法
function(函数):有些书中把它列为一种数据类型,依据是typeof的结果中有function
方法没有返回值
申明方法
方式一:最常用的方式(建议使用)
function 方法名([参数列表]){
//方法体
[retuen [返回值];]
}
方式二:
var 变量名 = function([参数列表]){}
方式三:var 变量名 = new Function(["参数列表"][,"方法体"]);
参数列表直接使用变量名即可 不需要使用var 声明 不能有返回值类型
声明方法
JacaScript中方法也是一个对象,可以将方法复制给另一个变量;
var 变量名 = 方法名; //不能有小括号
调用
变量名m();//必须加小括号
方法对象也有属性和方法
length属性:获取形参的个数(最多25个)
valueOf 和 toString()方法 获取方法的源码
arguments
模拟函数重载:用arguments对象获取传入的参数
function doAdd(){
if(arguments.length==1){
alert(arguments[0]+5);}
else if(arguments.length==2){
alert(arguments[0]+arguments[1]);
}
}
doAdd(10);//输出15
doAdd(40,20);//输出60
创建对象
语法:var 变量 = new 原型对象();
访问对象属性的方式
1 对象.属性名
2 对象[变量]
关键字delete
JavaScript也被称为动态语言
可以在运行中删除或者减价对象的属性和方法
delete 删除对象属性或方法的引用
var o = new Object;
o.naem="张三";//添加属性name
o.m = function(){};//添加方法m
alert(o.naem); //输出张三
delete o.name;//删除属性name;
alert(o.name);//输出undefined
伪对象
包括布尔值 数字和字符串这些原始值 他们都是伪对象
伪对象是原始值 存储在栈内存上 并且具有属性和方法
库对象
内置对象(built-in object)
相当于Java中的类;只有Global和Math
通过Math获取随机数
alert(Math.random());
库地对象(native object)(含内置对象)
相当于Java中的类;
Object Function Array String Boolean Number Date RegExp(正则表达式) Error EvalError RangeError ReferenceError SyntaxError TypeError URIError
宿主对象(host object): //所有BOMDOM对象BOM 浏览器对象模型和
DOM 文档对象模型对象(两类对象)
异常
JacaScript 没有throws
只有try、catch、finally和throw
功能和Java中一样
System.out.println();
document.write();
输出空格
document.write(" ")
换行
document.write("<br/>")
阅读全文
0 0
- Javascript
- JavaScript
- javascript
- javascript
- javascript
- javascript
- javascript
- JavaScript
- javascript
- JavaScript
- Javascript
- javascript
- javascript
- JavaScript
- javascript
- javascript
- JavaScript
- javascript
- Qt中设置统一控件风格
- mysql 查询中文首字母开头
- Fragment+Viewpager+嵌套Tablelayout+fragment
- C++ 学习笔记
- 关于sublime运行python3
- JavaScript
- windows下安装rabbitmq的步骤详解
- java 内部类和静态内部类的区别
- 启动redis出现Creating Server TCP listening socket *:6379: bind: No such file or directory
- ubuntu16.04如何安装搜狗输入法
- NMOS/PMOS原理基础(祥:应该有点问题)
- Servlet总结(2)
- 欢迎使用CSDN-markdown编辑器
- 编译glibc(gcc)以及过程中遇到的一些错误