这里写自定义目录标题
javasprit
alert函数使浏览器弹出警示框
console输出台输出,给程序员测试用的
console.log('这是只有在检查的console里面才能看到的');
var bianliang=25;
var 定义变量并赋值(变量可不定义直接赋值使用)
var bianliang=prompt('请打出欧耶');
这是一个输入框
alert(bianliang)
变量名.length获取字符串长度
//字符串拼接直接用加号
//布尔型和数字型相加的时候,true的值为1 ,false的值为0。
//typeof 变量
// 1.把数字型转换为字符串型变量.toString()
// 2.我们利用String(变量)
// 3.利用+拼接字符串的方法实现转换效果
// 1. parseInt(变量)可以把字符型的转换为数字型得到是整数
// 2. parseFloat(变量)可以把字符型的转换为数字型得到是小数浮点数
//注意parselnt和parseFloat单词的大小写,这2个是重点
//3.利用 Number(变量)
// 4.利用了算数运算-*/隐式转换
//不要直接判断两个浮点数是否相等
// 递增( ++)和递减( -- )运算符与c相同
//&&是and,||是or,!是not
//短路运算的原理︰当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
//3.逻辑与短路运算 表达式1&&表达式2 如果表达式1结果为真则返回表达式2 如果表达式1为假那么返回表达式1
//4.逻辑或短路运算 表达式1||表达式2 如果表达式1结果为真则返回的是表达式1如果表达式1结果为假则返回表达式2
//赋值运算符有=、+=、-=、*=、%=、/=
// 1.if的语法结构
// if(条件表达式){执行语句1}
//else if{执行语句2}
//else{执行语句3}
//条件表达式?表达式1:表达式2
//switch
/*switch(表达式){
case value1:
执行语句1;break;
case value2:
执行语句2;break;
default:
执行最后的语句;}*/
/* 2. for语法结构
for(初始化变量;条件表达式;操作表达式){
循环体}*/
/* 1. while循环语法结构
while(条件表达式){
循环体}*/
/*1.do while 循环语法结构
do {循环体}while(条件表达式)*/
//continue关键字用于立即跳出本次循环,继续下一次循环
//break退出整个循环
// 利用new创建数组
/*var arr = new Array();创建了一个空的数组
利用数组字面量创建数组var arr = [];创建了一个空的数组
var arr1 = [1,2,true];数组里面的数据一定用逗号分隔
I 数组里面的数据比如1,2,我们称为数组元素I*/ /数组长度数组名.length 与c不同的是,js的数组不需要提前定义大小,与python相同,可随时添加新的元素 1.新增数组元素修改length长度,增加后新加的数是empty 2.新增数组元素修改索引号 var arr1 = [ " red ', ‘green’ , " blue ']; arr1[3] = 'pink '; !!不要直接给数组名赋值否则里面的数组元素都没有了/ /*函数使用分为两步:声明函数和调用函数 1.声明函数 function函数名(参数…){ return需要返回的结果;} 或者var变量名= function(参数…){函数体}; return终止函数return只能返回一个值 函数没有return返回undefined */ /当我们不确定有多少个参数传递的时候,可以用arguments来获取。在JavaScript中 ,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,arguments对象中存储了传递的所有实参。 arguments展示形式是一个伪数组,因此可以进行遍历。伪数组具有以下特点: 具有length属性 按索引方式储存数据 不具有数组的push , pop等方法/ /利用函数求任意个数的最大值 function getMax(){arguments = [1,2,3] var max = arguments[e]; for (var i = 1; i < arguments.length; i++){ if (arguments[i] > max) { max = arguments[i];}} return max;} console.log(getMax(1,2,3)); console.log(getMax(1,2,3,4,5));/ /*全局作用域:整个script标签或者是一个单独的js文件。全局变量:在全局作用域下的变量 局部作用域在函数内部就是局部作用域这个代码的名字只在函数内部起效果和作用 js没有块级作用域 作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取那个值这种结构我们称为作用域链(就近原则) */ /利用字面量创建对象(就是字典) 对象字面量:就是花括号{}里面包含了表达这个具体事物(对象)的属性和方法。 (1).调用对象的属性我们采取对象名.属性名.我们理解为的console.log(obj.uname); (2).调用属性还有一种方法对象名[‘属性名"] 方法︰对象里面的函数称为方法,方法不需要声明,使用“对象.方法名()”的方式就可以调用,方法用来描述该对象的行为和功能。 利用 new Object创建对象 var obj = new object();1/ 创建了一个空的obj.uname =‘张三疯’; obj.age = 18; obj.sex =‘男’; obj.sayHi = function(){ console.log( ’ hi~’);}/ // (1)我们是利用等号=赋值的方法添加对象的属性和方法(2)每个属性和方法之间用分号结束 /*用构造函数生成对象 function 构造函数名(){ this.属性=值; this.方法= function(){}} new构造函数名(); */ /*function Star(uname, age, sex){ this.name = uname; this.age = age; this.sex = sex;} var ldh = new Star(‘刘德华’,18,“男’); 1.构造函数名字首字母要大写 2.我们构造函数不需要return就可以返回结果 3.new构造函数可以在内存中创建了一个空的对象 4.this 就会指向刚才创建的空对象 5.执行构造函数里面的代码给这个空对象添加属性和方法 6.返回这个对象 for in遍历我们的对象 for(变量in 对象){} */ /*内置对象(库)就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法) https://developer.mozilla.org/zh-CN/可查询库里面的函数 有Math Math.PI圆周率 Math.floor ()向下取整 Math.ceil ()向上取整 Math.round ()四舍五入版就近取整注意-3.5结果是-3 Math.abs ()绝对值 Math.max () /Math.min() 求最大和最小值 Math.random()返回一个随机的浮点 有Date 使用Date如果没有参数返回当前系统的当前时间 var date = new Date(); Date对象和Math对象不一样,他是一个构造函数,所以我们需要实例化后才能使用 Date 实例用来处理日期和时间 如果括号里面有时间,就返回参数里面的时间。例如日期格式字符串为‘2019-5-1’,可以写成new Date(2019-5-1)或者new Date(2019/5/1”) getFullYear()获取当年dObj.getFullYear() getMonth()获取当月(0-11)dObj.getMonth() getDate()获取当天日期dObj.getDate() getDay()获取星期几(周日0到周六6)dObj.getDay() getHours()获取当前小时dObj.getHours() getMinutes()获取当前分钟dObj.getMinutes() getSeconds()获取当前秒钟dobj.getSectonds() */ /检测是否为数组 (1)instanceof运算符它可以用来检测是否为数组 变量名 instanceof Array 返回Ture或False (2)Array.isArray(参数); 返回Ture或False/ /添加删除数组元素方法 1. push()在我们数组的末尾添加一个或者多个数组元素 变量名.push(添加元素) push完毕之后,返回的结果是新数组的长度 2. unshift 在我们数组的开头添加一个或者多个数组元素 用法同push 3. pop()它可以删除数组的最后一个元素 pop()没有参数 pop完毕之后,返回的结果是删除的那个元素 4.shift()它可以删除数组的第一个元素 用法同pop/ /reverse() 颠倒数组中元素的顺序,无参数 该方法会改变原来的数组返回新数组 sort() 对数组的元素进行排序 该方法会改变原来的数组返回新数组/ /indexOf() 数组中查找给定元素的第一个索引 如果存在返回索引号如果不存在则返回-1。 lastIndexOf() 在数组中的最后一个的索引, 如果存在返回索引号如果不存在则返回-1。 .indexof(数组元素)/ /数组转换为字符串 1. toString()将我们的数组转换为字符串 .toString() concat() 连接两个或多个数组不影响原数组 返回一个新的数组 slice() 数组截取slice(begin, end) 返回被截取项目的新数组 splice() 数组删除splice(第几个开始,要删除个数) 返回被删除项目的新数组注意,这个会影响原数组/ /基本包装类型:就是把简单数据类型包装成为了复杂数据类型 (2)把临时变量的值给str (3)销毁这个临时变量 变量=null/ /6.2字符串的不可变指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。 1.charAt(index)根据位置返回字符 2. charCodeAt(index)返回相应索引号的字符ASCII值目的:判断用户按下了那个键 str[index]/ /1. concat(‘字符串1’,‘字符串2’…)拼接字符串 substr(start,length)从start位置开始(索引号) , length 取的个数重点记住这 slice(start, end)从start位置开始,截取到end位置,end取不到(他们俩都是索引号) substring(start, end)从start位置开始,截取到end位置,end取不到基本和slice相同但是不接受负值 1.替换字符replace(‘被替换的字符’,‘替换为的字符’) 2.字符转换为数组split(‘分隔符’) toUpperCase()转换大写 toLowerCase()转换小写/ /*简单数据类型null返回的是一个空的对象object 如果有个变量我们以后打算存储为对象,暂时没想好放啥,这个时候就给null 1、栈(操作系统)︰由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈; 简单数据类型存放到栈里面 2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。 复杂数据类型存放到堆里面 1.简单数据类型是存放在栈里面里面直接开辟一个空间存放的是值 2.复杂数据类型首先在栈里面存放地址十六进制表示︰然后这个地址指向堆里面的数据 函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变呈 */
|