HTML DOM操作(节点操作,比如添加、修改、删除节点)
给HTML网页增加动态功能,比如动画
事件处理:比如监听鼠标点击、鼠标滑动、键盘输入
Node. js
是一个JavaScript运行环境(runtime),是对Google V8引擎进行封装
V8引擎执行JavaScript的速度非常快,性能非常好
优势:可以作为后台语言,单线程(不新增额外线程的情况下,依然可以对人物进行并行处理),非阻塞I/O、V8虚拟机、事件驱动
一、js的书写方式
二、js基本语法
1.JS
中常见的数据类型
var
age = 18;
//number
var money = 1.09; //number
var name = 'jack'; //string
var name1 = 'rose'; //string
var result = true ; // boolean false
var money = 1.09; //number
var name = 'jack'; //string
var name1 = 'rose'; //string
var result = true ; // boolean false
var number = null; // object
var
number2 =
null
;
// undefined
2.typeof 用于判断变量的真实类型
console.log(age, money, name, name1, result, score);
console.log(typeof age,typeof money,typeof name,typeof name1,typeof result,typeof score);
3.
字符串拼接
规律
:
运算是从左往右
,
任何类型的变量与
string
类型拼接都会被转为
string
var
newName = name + ‘-' + name1;
console.log(newName);
4.题目
遵循的规律:运算时从左往右;任何类型的变量与string类型的变量拼接就会被强转为string
var
str1 = 10 + 10 + '10' + '10';
// 201010
var str2 = '10' + '10' + 10 + 10; // 10101010
var str3 = ('10' + 10) + '10' + 10; // 10101010
var str2 = '10' + '10' + 10 + 10; // 10101010
var str3 = ('10' + 10) + '10' + 10; // 10101010
console.log(str1, str2);
5.数组(
数组中可以放任意类型的数据)
var
newArr = [10, -5, age, name, result, score, ['
哈哈哈
', 'dewdew']];
6.
数组的类型 object
console.log(typeof newArr);
7.
输出数组中的内容(遍历) JS中遍历的两种方式
1.
for(var i=0; i<newArr.length; i++){
console.log(newArr[i]);
}
2.
for(var i in newArr){
console.log(i, newArr[i]);
}
console.log(newArr[newArr.length -1][0]);
8.
删除最后一个元素
,
添加一个新的元素到数组中
pop()
和
push()
newArr.pop(); //
删除数组中最后的元素
newArr.push(['
大神
5
期
']);
console.log(newArr);
9.
取出数组中的最大值和最小值
Math.min Math.max Math.min.apply(null,
数组
) Math.max.apply(null,
数组
)
var
newNumbers = [10,99,2121,23443];
取出最小值
var minNumber = Math.min(10,32,34,4554,-9);
var
minNumber = Math.min.apply(this
,newNumbers);
取出最大值
var
maxNumber = Math.max.apply(this
, newNumbers);
console.log(minNumber, maxNumber);
三、js中的函数
1.
两个数相加
function
sum(num1, num2){
return num1 + num2;
return num1 + num2;
}
调用函数
var result = sum(200, 50);
var result = sum(200, 50);
console.log(result);
2. 万能的加法函数
function
sum1(numbers){
var count = 0;
for ( var i=0; i<numbers.length; i++){
count += numbers[i];
}
return count;
}
var numbers = [12,23,'10'];
var result1 = sum1(numbers);
var count = 0;
for ( var i=0; i<numbers.length; i++){
count += numbers[i];
}
return count;
}
var numbers = [12,23,'10'];
var result1 = sum1(numbers);
console.log(result1);
3.
内置数组
arguments
function
sum2(){
var count = 0;
for ( var i=0; i<arguments.length; i++){
count += arguments[i];
}
return count;
}
var result2 = sum2(10,20,40,30);
var count = 0;
for ( var i=0; i<arguments.length; i++){
count += arguments[i];
}
return count;
}
var result2 = sum2(10,20,40,30);
console.log(result2);
4.
匿名函数
var
test =
function
(){
console.log(' 我是匿名函数 ');
console.log(' 我是匿名函数 ');
}
调用匿名函数
test();
四、js中的对象
this this
在哪个对象中
,
就代表该对象
var
dog = {
name : 'wangcai',
age : 19,
height : 1.55,
friends : ['xixi','lili'],
name : 'wangcai',
age : 19,
height : 1.55,
friends : ['xixi','lili'],
eat : function(someThing){
console.log(
this
.name + '------
吃
'+someThing);
},
run : function (someWhere){
console.log( this .name +'------ 跑 '+someWhere);
}
};
},
run : function (someWhere){
console.log( this .name +'------ 跑 '+someWhere);
}
};
调用狗对象的属性
console.log(dog.name, dog.friends);
调用狗对象的方法
dog.eat('
骨头
');
dog.run('操场');
五、批量生产对象(普通函数->构造函数)
function
Dog(){
console.log('------');
}
console.log('------');
}
var Dog =
function
(){
console.log('------');
}
调用函数
Dog();
产生狗对象 --> [[Dog alloc] init];
var
dog1 =
new
Dog();
console.log( typeof dog1);
var dog2 = new Dog();
console.log( typeof dog1);
var dog2 = new Dog();
console.log(typeof dog2);
六、验证批量生产够对象
//
构造函数
function Dog(){
this .name = null ;
this .height = null ;
this .age = null ;
this .friends = [];
this .eat = function (someThing){
console.log( this .name + ' 吃 ' + someThing);
},
this .run = function (someWhere){
console.log( this .name + ' 跑 ' + someWhere);
}
}
// 批量产生狗
var dog1 = new Dog();
var dog2 = new Dog();
// 赋值
dog1.name = 'wangcai';
dog1.height = 1.38;
dog1.age = 19;
dog1.friends = ['lili', 'xoxo'];
dog2.name = 'ahuang';
dog2.height = 0.55;
dog2.age = 1;
dog2.friends = [];
// console.log(dog1, dog2);
// dog1.eat(' 五花肉 ');
// dog2.eat(' 狗奶 ');
// 构造函数
function Dog(name, height,age, friends){
this .name = name;
this .height = height;
this .age = age;
this .friends = friends;
this .eat = function (someThing){
console.log( this .name + ' 吃 ' + someThing);
},
this .run = function (someWhere){
console.log( this .name + ' 跑 ' + someWhere);
}
}
// 创建新的对象
var dog3 = new Dog('nn',12,1,['3232']);
function Dog(){
this .name = null ;
this .height = null ;
this .age = null ;
this .friends = [];
this .eat = function (someThing){
console.log( this .name + ' 吃 ' + someThing);
},
this .run = function (someWhere){
console.log( this .name + ' 跑 ' + someWhere);
}
}
// 批量产生狗
var dog1 = new Dog();
var dog2 = new Dog();
// 赋值
dog1.name = 'wangcai';
dog1.height = 1.38;
dog1.age = 19;
dog1.friends = ['lili', 'xoxo'];
dog2.name = 'ahuang';
dog2.height = 0.55;
dog2.age = 1;
dog2.friends = [];
// console.log(dog1, dog2);
// dog1.eat(' 五花肉 ');
// dog2.eat(' 狗奶 ');
// 构造函数
function Dog(name, height,age, friends){
this .name = name;
this .height = height;
this .age = age;
this .friends = friends;
this .eat = function (someThing){
console.log( this .name + ' 吃 ' + someThing);
},
this .run = function (someWhere){
console.log( this .name + ' 跑 ' + someWhere);
}
}
// 创建新的对象
var dog3 = new Dog('nn',12,1,['3232']);
console.log(dog3);
七、JS语法的灵活性
// || &&
// || 逻辑或
var name1 = '';
var name2 = 'name2';
var name3 = 'name3';
var name4 = 'name4';
var newName = null ;
// 判断
if (name1){
newName = name1;
} else if(name2){
newName = name2;
}elseif(name3){
newName = name3;
}else{
newName = name4;
}
// 新的做法
newName = name1 || name2 || name3 || name4;
console.log(newName);
// && 逻辑与
var age = 22;
if(age>20){
console.log('可以结婚了');
}
// 条件 && {
// ...
// }
// || 逻辑或
var name1 = '';
var name2 = 'name2';
var name3 = 'name3';
var name4 = 'name4';
var newName = null ;
// 判断
if (name1){
newName = name1;
} else if(name2){
newName = name2;
}elseif(name3){
newName = name3;
}else{
newName = name4;
}
// 新的做法
newName = name1 || name2 || name3 || name4;
console.log(newName);
// && 逻辑与
var age = 22;
if(age>20){
console.log('可以结婚了');
}
// 条件 && {
// ...
// }
(age >20) && console.log('可以结婚了!!!!!!!');