// number1:交换两个变量的值var n1=5;var n2=10;//交换n1,n2的值var boxchange=n1n1=n2n2=boxchangeconsole.log(n1,n2);
var n2=10;// //交换n1,n2的值// var boxchange=n1// n1=n2// n2=boxchange// console.log(n1,n2);// 不适用第三方变量的时候n1=n1+n2n2=n1-n2n1=n1-n2console.log(n1,n2);
1.原始类型(不可变类型)
数字,字符串,布尔,null,undifined
复杂数据类型:
object 普通对象 var man = {name:‘’,age:23}
特殊对象 全局对象
数组
函数
js中的数据类型分为:数值、字符串、布尔、数组、对象、空(null)、未定义的(undefined)、函数
null和undefined的区别
Null 已定义,并初始化为null。
Undefined:未定义,或者未初始化 。
用来查询数据类型
3.数据类型的转换
3.1 转换成字符串类型
to string()可以把数值转换为字符串类型
var num=10
console.log(String());
string()可以把tostring()不能转换的类型转换掉未定义的和空值
3.2转换成数值类型
number(如果转换的字符串有不是数值的,返回nan)
parselnt()(无法将布尔类型转换成数值类型,返回的结果是nan)
parfloat()与上面的相似,就是这个能转换为浮点型
3.3转换成布尔类型
boolean()
将各种类型的值转化成Boolean类型的规则如下:
Number:任意非0的数值为true,0值和NaN为"false"。
String:所有的非空字符串转化为 true;“”(空字符串)转化成false
Object的任何非空对象都会转化为 true;
在javascript中,只要逻辑表达式不返回undefined不返回null,就都是真的。
条件表达式?语句1:语句2
说明:
条件表达式会被作为布尔值进行处理
语句一(当条件表达式为true时执行)
语句二(当条件表达式为false时会执行)
// var num1=120// var num2=110// var p=num1>num2?'男的':'女的'// console.log(p);
// var num=5// if(num%2==0){// console.log('是偶数');// }// else{// console.log('是奇数');// }
var arr = [29,45,51,68,72,97];//外层循环,控制趟数,每一次找到一个最大值for (var i = 0; i < arr.length - 1; i++) {// 内层循环,控制比较的次数,并且判断两个数的大小for (var j = 0; j < arr.length - 1 - i; j++) {// 白话解释:如果前面的数大,放到后面(当然是从小到大的冒泡排序)if (arr[j] > arr[j + 1]) {var temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}console.log(arr);//[2, 4, 5, 12, 31, 32, 45, 52, 78, 89]
基本类型就类似于在栈空间中保存的数值,而引用类型是在堆空间中保存的,地址在栈空间中。
function f1(person) { // person为形参
person.name = "lisi";
person = new Person("aa",18,10);
}
var p = new Person("zhangsan",18,1000);
console.log(p.name); // zhangsan
f1(p); // 把p对应的地址复制一份给person,person和p对应一个地址,那么修改地址对应的内容,会影响p
console.log(p.name); // lisi
//1.
var num1 = 10;
var num2 = num1; // num2 = 10;
num1 = 20;
console.log(num1); // 20
console.log(num2); // 10
获取当下的时间信息的时候来使用
var date=new Date()document.write(date);
运行结果是“Mon Aug 21 2023 20:41:21 GMT+0800 (中国标准时间)”
如果我们只想单纯获得当下的年/月/日/星期。
var date=new Date().getFullYear()console.log(date);//获得年月(month) 星期(day)
注意星期是从0-6,周日是0,如果想用大写的话,利用数组
var str = ‘abc’;
str = ‘hello’;
// 当重新给str赋值的时候,常量’abc’不会被修改,依然在内存中
// 重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变
// 由于字符串的不可变,在大量拼接字符串的时候会有效率问题
// 1.工厂的构造函数// function Hero(name, age, skill, blood) {// var hero = new Object();// hero.name = name;// hero.age = age;// hero.skill = skill;// hero.blood = blood;// hero.attack = function () {// document.write(this.name + '今年' + this.age + '会' + this.skill + '有' + this.blood)// }// return hero;// }// var hero1 = Hero('孙悟空', '500', ['七十二变', '筋斗云'], 500);// document.write( Hero('孙悟空', '500', ['七十二变', '筋斗云'], 500).attack())// 2.自定义构造函数// function Hero(name,age,skill){// this.name = name;// this.age=age;// this.skill=skill// this.attack=function(){// document.write(this.name + '今年' + this.age + '会' + this.skill ) }// }// var hero1 =new Hero('孙悟空', '500', ['七十二变', '筋斗云']);// document.write(hero1.attack())// 3.new object 创建对象// var hero = new Object();// hero.name='关羽'// hero.weapon='青龙偃月刀'// hero.equipment=['赤兔马','靴子','头盔']// hero.blood=100;// hero.attack=function(){// document.write(this.name+'拿着'+this.weapon)// }// hero.attack()// document.write(hero.name)// 3.对象的字面量构造函数方式// var hero = {// name: '黄忠',// weapon: '大炮',// equipment: ['泣血之刃', '破晓', '抵抗鞋'],// blood: 5000,// attack: function () {// console.log(this.name + '举着' +this.weapon + '穿着' +this.equipment + '血量是' +this.blood);// }// }// console.log(hero.name);// hero.attack();// 构造函数有缺点,对象的方法只能放在构造函数的内部,这样每次创建一个方法就要占用非常多的内存// 给js构造函数设计了一个prototype属性用来存放对象的方法;// function age(aie,ja){// name= aie,// ag=ja// console.log(aie,ja);// }// age(1,98)
// splice //参数为1个的情况下// 当索引为正数时:// 1.删除此索引以后的所有元素// var arr=[1,5,6,8,9,32,3]// arr.splice(2)// document.write(arr)// 当索引为负数时:// 2.从后往前计算,最后一位是-1,以后的元素全部删除// var arr=[1,5,6,8,9,32,3]// arr.splice(-3)// document.write(arr)//参数为两个的情况下// 2.删除任意数量的项(删除起始位置的下标,删除的项数)// eg// var arr=[1,5,6,8,9,32,3]// arr.splice(3,0) //0的话意思是删除0项// document.write(arr)
// 参数为三个的情况下// 3.在指定的位置插入指定的项(起始下标,0(不删除任何项),要插入的项)// var arr=[1,8,56,48,61,89,4]// arr.splice(2,0,'e')// document.write(arr)// 4.替换任意数量的项(起始下标,要删除的项数,要插入的项)// var arr=[1,8,56,48,61,89,4]// arr.splice(2,1,'e')// document.write(arr)
//slice的用法:// splice只能作用在数组,但是slice可以作用在数组以及字符串上
// 表示切片
// 后边取不到,左开右闭
// 类似substring(substr第二位截取的是长度)
var n1 = 1;// 前一个数var n2 = 1;// 当前数var n3;for (var i = 3; i <= 9; i++) {n3 = n2 + n1;n1 = n2;n2 = n3;}console.log(n3);
var numbers = [120, 13, 101, 88, 10, 25];var max = numbers[0];var min = numbers[0];// 最大值的索引var maxIndex = 0;// 最小值的索引var minIndex = 0;for (var i = 1; i < numbers.length; i++) {// 找大的数if (max < numbers[i]) {max = numbers[i];maxIndex = i;}// 找小的数if (min > numbers[i]) {min = numbers[i];minIndex = i;}}console.log(max, min);console.log(maxIndex, minIndex);
var minIndex = 0;for (var i = 1; i < numbers.length; i++) {// 找大的数if (max < numbers[i]) {max = numbers[i];maxIndex = i;}// 找小的数if (min > numbers[i]) {min = numbers[i];minIndex = i;}
}
console.log(max, min);
console.log(maxIndex, minIndex);
本文发布于:2024-02-03 04:54:57,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170690729548782.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |