vlambda博客
学习文章列表

前端学习总结HTML5+CSS3+JavaScript(3))

嗨!我又来了!今天是JavaScript的到来哈!我总结的这些都很浅显,基本都可以查得到,w3c网站大家可以去玩玩。最近在学算法结构,和JS结合真是美妙极了,我甚至觉得JS比python都简单。哈哈哈哈哈哈哈哈哈哈或或或或或这是什么狂徒。


众所周知,要想页面具有交互功能,JS必须是大头,把静态页面做成动态交互页面。HTML只用来观看。


  • JavaScript在HTML的引用共有4种:

  • (1)页头引入(head标签内);

  • (2)页中引入(body标签内);

  • (3)元素事件中引入(标签属性中引入);

  • (4)引入外部JS文件;


  • 引入外部JS文件,说白了就是把JavaScript程序存放在一个后缀名为.js的文件中,然后使用script标签来引用。其他几种方式就是在head 和body中增加script标签,在里面填程序。

  • 变量名声明赋值!必须声明,必须赋值!只声明不赋值,未定义!

  • 基本数据类型:number;string;boolean

  • 特殊数据类型:null;undefined;转义

  • 数据类型和其他语言差不多,略过

  • \n 换行 \'单引号 \" 双引号

  • 数据类型转换:转字符串:1.加号拼接;2.tostring;3.string

  • 转换数字:parseInt;(得到整数)parseFloat(得到浮点数;)没有加号运算也可以转(力扣题两数之和我就用这个解的)

  • i++和++i区别:

i=1;j=i++;j的值为1,i的值为2i++,使用i后,i的值加1
i=1;j=++i;j的值为2,i的值为2使用i时,先让i的值加一
  • 算术运算符/比较运算/赋值运算/逻辑/条件

  • typeof用来检测是什么数据类型

  • 三元表达式:条件表达式?表达式1:表达式2

  • 输入:prompt;弹出:alert;打印输出:console.log

  • 数字+字符串”返回值一定是字符串,因为JavaScript会自动将数值型数据转换成字符串型数据算术运算符的两边必须都是数值,若在“+”运算中存在字符或字符串,则该表达式将是字符串表达式。

  • 流程控制


  • 选择:if/if else/if elseif/if 嵌套

  • switch

  • 循环:while/do while/for

  • do while 结尾有分号;do…while语句将先执行一遍循环体中的语句,然后才判断条件表达式的真假。这是它与while语句的本质区别

  • 跳转:break/continue:break是彻底结束循环,而continue是结束本次循环

eg:一行打印5个星星、打印n行n列星星、九九乘法表


函数



  • 函数,就是一个一系列JavaScript语句的集合,这是为了完成某一个会重复使用的特定功能。在需要该功能的时候,直接调用函数即可,而不必每次都编写一大堆重复的代码。

  • 不指定函数名的函数:(定义方式)

 //定义函数 var myFunction=function(){ document.write("这是一个没有函数名的函数!"); } //调用函数 myFunction();
  • 指定函数名的函数(定义函数)

 //定义函数 function addNum(a,b){ var m=a+b; return m; } //调用函数 var sum=addNum(1,2); document.write("相加的结果是:"+sum);
  • 调用函数:(1)简单调用;(没有返回值,如第一个程序)(2)在表达式中调用;(适用于有返回值的函数,然后函数的返回值参与表达式的计算和输出语句搭配使用)(3)在事件响应中调用(4)通过链接调用;

  • 函数是一种方法

  • arguments是内置好了的,存储了所有传递过来的实参,具有数组特性与属性。在函数里可以遍历

  • eg:函数封装里的冒泡;最大值等写法

  • 在函数中的形参,实参顺便引出全局作用域和局部作用域。局部作用域在函数内部局部使用;,不占内存,用完就销毁


JS的预解析:把var和function提升到当前作用域之前。变量解析是把所有变量声明提升到最前,但不赋值。函数提升,就是把函数声明提到最前,但是不调用函数;


对象

  • 对象可以保存完整的信息;{}

  • 键属性值,调用对象属性,对象名.属性

  • 遍历对象:for 变量 in 对象 。log(变量)输出的是属性名;log(obj[变量])输出的是属性值

  • javascript内置对象:字符串;日期;数组;数值


  • 字符串

  • str.length(属性)

  • str.match检索字符串是否存在(方法)

  • str.indexOf 返回字符串的值在字符串首先出现的位置(不存在是-1)(方法)

  • str.replace 用一些字符代替另一些字符(方法)

  • charAt 截取特定下标的字符(方法)

  • toLowercase/toUppercase

  • concat连接

  • str.split(" ")表示字符串以空格作为分割符

  • substr(开始,结束)截取字符串


  • 日期

  • 创建date对象:必须用new

  • 日期方法主要分为get/set/to

  • var 日期对象名 = new Date();这句话直接返回系统当前日期

JavaScript获取当前年、月、日
方法 说明
getFullYear() 返回一个表示年份的4位数字
getMonth() 返回值是0(一月)到11(十二月)之间的一个整数
getDate() 返回值是1~31之间的一个整数
  • getMonth 返回值是0-11.所以求当前月份必须加1

  • set是设置日期,与get获取不同之处在于,getFullYear()只能获取当前年份,但是setFullYear()却可以同时设置年、月、日;getMonth只能获取当前月份,但是setMonth()却可以同时设置月、日。

JavaScript获取当前时分秒
方法 说明
getHours() 返回值是0~23之间的一个整数,来表示小时数
getMinutes() 返回值是0~59之间的一个整数,来表示分钟数
getSeconds() 返回值是0~59之间的一个整数,来表示秒数
  • set时分秒和之前的对比记忆

  • 今天星期几?

数组


  • 变量只适合存储一个数据。我们可以使用“数组”来存储一组“相同数据类型”的数据结构。[]

  • 创建数组:var 数组名=new Array();

  • 赋值:1.var 数组名 = new Array(元素1,元素2,…,元素n);

  •           2.

    var 数组名 = new Array();
  • 数组名[0] = 元素1;

  • 获取:下标

  • 遍历:for循环

  • 长度:数组名.length(属性)

  1. eg:数组中的最大值:max盒子;

  2. eg:数组中元素相连:str+=‘’

  3. eg:数组新增元素:修改长度;追加元素

  4. eg:筛选数组

  5. eg:翻转

  6. eg:排序(两层for循环,交换变量)

Array对象常用方法
方法 说明
slice() 获取数组中的某段数组元素
unshift() 在数组开头添加元素
push() 在数组末尾添加元素
shift() 删除数组中第一个元素
pop() 删除数组最后一个元素
toString() 将数组转换为字符串
join() 将数组元素连接成字符串
concat() 多个数组连接为字符串
sort() 数组元素正向排序
reverse() 数组元素反向排序
  • arr.slice(start,end);其他类似地用法

  • toString转换成字符串时元素用英文逗号隔开

  • pop()方法将删除数组对象的最后一个元素,并且把数组长度减1,返回它删除的该元素的值。


数值

var dt = new Date() //创建Date对象document.write(dt.toString()) //只有创建了Date对象,才能使用它的方法var arr = new Array() //创建Array对象document.write(arr..reverse()) //只有创建了Array对象,才能使用它的方法
  • 数值对象不用new(感觉像内置函数)

Math对象的方法
方法 说明
abs(x) 返回数的绝对值
acos(x) 返回数的反余弦值
asin(x) 返回数的反正弦值
atan(x) 以介于-π/2与π/2弧度之间的数值来返回x的反正切值
atan2(y,x) 返回从x轴到点(x,y)的角度(介于-π/2与π/2弧度之间)
ceil(x) 对数进行上舍入
cos(x) 返回数的余弦
exp(x) 返回e的指数
floor(x) 对数进行下舍入
log(x) 返回数的自然对数(底为e)
max(x,y) 返回x和y中的最大值
min(x,y) 返回x和y中的最小值
pow(x,y) 返回x的y次幂
random() 返回0~1之间的随机数
round(x) 把数四舍五入为最接近的整数
sin(x) 返回数的正弦
sqrt(x) 返回数的平方根
tan(x) 返回角的正切
toSource() 返回该对象的源代码
valueOf() 返回Math对象的原始值
  • sqrt的x必须是大于等于0;

  • pow(x,y)x是底数,y是幂数

  • 取整运算都是取的大的那一方,负数也是。(在四舍五入那块3.5将舍入为-3



对话框

  • alert():仅有提示文字,没有返回值;

  • confirm():具有提示文字,返回“布尔值”(true或false);

  • prompt():具有提示文字,返回“字符串”;



以上是JavaScript最核心基础的部分,内置函数还有文档对象下次一同讲。其实说白了就是基本语法里面的函数和对象的一些设置,方法之类的。总结之后突然觉得不是很乱了。


题目

  1. 判断字符串出现次数最多的字符,统计次数

  2. 查找字符串中某个字符的位置及次数

  3. 倒计时做法

  4. 猜数字游戏

  5. 熟悉封装函数,数组和对象使用的jiqiao


             哦了,拜拜