函数

1.使用关键字function声明一个函数,如果需要传参数就传参,多个参数用逗号隔开,如果不需要传参数就不传

//函数声明
function name(num1,num2){
//方法体
}

2.函数不能声明返回值类型,即使有返回值,也不能声明返回值类型

3.函数只有在调用的时候才执行,只声明不调用是不会执行的

4.如果函数没有返回值,那么这个函数执行过后返回undefined

function add(num){
if(num > 50){
return num + 10;
}
}
alert(add(45));
//结果为:undefined

5.函数不能声明参数的数据类型

6.所有的函数都以小写字母开头

7.函数的参数个数不是严格要求的,调用时实参的个数可以不等于形参的个数,实参多余形参时以第一个实参为准 ,实参少于形参个数时为undefined

function add(num){
if(num > 55){
return num + 5;
}
else{
return "成绩不合格";
}
}
alert(add(45,65));
//输出结果为:成绩不合格
alert(add(65,45));
//结果为:70

8.自定义的函数不能跟JavaScript系统函数重名

9.JavaScript中不存在重载,如果出现相同名字的函数,后面的会覆盖前面的

function add(num){
return num + 10;
}
function add(num1,num2){
return num1 + num2;
}
alert(add(1,2));
//结果为:3
alert(add(1));
//结果为:NaN
//由于函数找不到参数,所以输出undefined(未定义),当undefined类型数据和一个数值类型数据进行运算时,undefined先转换成数值类型NaN(非数值),然后NaN和一个数值类型数据运算,结果还是NaN。

10.变量提升:

JavaScript中,函数及变量可以在使用后声明,也就是先使用再声明。

myFunction();

function myFunction(){
var num = 10;
console.log(num);
}
num = 10;
console.log(num);
var num;
//输出:10

JavaScript只有声明的变量会提升,初始化(赋值)的不会。

console.log(num);
var num = 10;
//输出:undefined //上述代码等价于:
var num;
console.log(num);
//只声明,未初始化,输出为:undefined
num = 10;
  • 尽量不要使用变量提升

JavaScript中异常处理

  • 语法:
try{
//异常的抛出
//throw new Error(); 自定义错误消息
}
catch{
//异常的捕获与处理
}
finally{
//结束处理
}
  • 用法:
function add(num){
try{
if(num > 50 && num <60){
console.log(num + 10);
}
else{
throw new Error("输入的值不正确");
}
}
catch(err){
console.log(err);
}
finally{
console.log("end");
} }
add(40);

对象

JavaScript中所有事物都是对象:字符串、数值、数组、函数……

此外,JavaScript允许自定义对象

JavaScript中的内置对象:

  • String(字符串)

  • Date(日期)

  • Math(数学)

  • Number(数字)

  • Boolean(布尔型)

  • Array(数组)

常用字符串(String)的处理:

var str = "我想你,我在十点差三分的时候开始想你";
console.log(str.length); //使用长度属性length来计算字符串的长度
//输出:18 console.log(str.charAt(2)); //使用chatAt()方法返回在指定位置的字符
//输出:你 console.log(str.indexOf("想")); //使用indexOf()方法,从(0)号索引开始,返回某个指定的字符串值在字符串中首次出现的位置。
//输出:1 console.log(str.indexOf("想",5)); //从(5)号索引开始,包括(5)号索引,返回某个指定的字符串值在字符串中首次出现的位置。
//输出:16 console.log(str.lastIndexOf("你")); //使用lastIndexOf()从后向前搜索字符串,并从起始位置(0)号索引开始计算返回字符串最后出现的位置。
//输出:17 console.log(str.split("点")); //使用split()方法把字符串分割为字符串数组。
//输出:
// (2) ["我想你,我在十", "差三分的时候开始想你"]
// 0: "我想你,我在十"
// 1: "差三分的时候开始想你"
// length: 2 console.log(str.substr(6,5)); //substr(索引号,提取个数)从起始索引号开始(包括起始索引号的字符)提取字符串中指定数目的字符。
console.log(str.substring(6,11));
//substring(起始索引号, 结束索引号)提取起始索引号开始(包括起始索引号的字符)到结束索引号之前(不包括结束索引号的字符)的字符。

Date(日期)对象:

var today = new Date();
console.log(today); //输出当前的日期和时间 console.log(today.toLocaleString()); //据本地时间格式,把 Date 对象转换为字符串。 console.log(today.toLocaleDateString()); //根据本地时间格式,把 Date 对象的日期部分转换为字符串。 console.log(today.toLocaleTimeString()); //根据本地时间格式,把 Date 对象的时间部分转换为字符串。 console.log(today.getFullYear()); //从 Date 对象以四位数字返回年份。 console.log(today.getMonth()); //从 Date 对象返回月份 (0 ~ 11)。 console.log(today.getDate()); //从 Date 对象返回一个月中的某一天 (1 ~ 31)。 console.log(today.getHours()); //返回 Date 对象的小时 (0 ~ 23)。 console.log(today.getMinutes()); //返回 Date 对象的分钟 (0 ~ 59)。 console.log(today.getSeconds()); //返回 Date 对象的秒数 (0 ~ 59)。

Math对象:

方法 描述
abs(x) 返回 x 的绝对值。
ceil(x) 对x进行向上取整。
floor(x) 对 x 进行下向下取整。
max(x,y,z,...,n) 返回 x,y,z,...,n 中的最高值。
min(x,y,z,...,n) 返回 x,y,z,...,n中的最低值。
pow(x,y) 返回 x 的 y 次幂。
random() 返回 [0 ~ 1) 之间的随机数。
round(x) 四舍五入。

Number对象:

  • 使用isNaN()判断输入的是不是一个数字

  • 数字可以是数字或者对象

var x = 369;
var y = new Number(369);
typeof(x);//返回Number
typeof(y);//返回Object

Boolean(布尔)对象:

  • 0 的布尔值 false

  • 1 的布尔值 true

  • 空字符串的布尔值 false

  • null 的布尔值 false

  • NaN 的布尔值 false

  • 字符串'false' 的布尔值true

  • undefined的布尔值是false

Array(数组)对象:

  • JavaScript中数组就是一个Array对象

  • JavaScript中数组是动态的,是可变的,既可以当数组用,也可以当做“栈”或者“队列”来用
    数组操作的方法:
    1.arr[arr.length] = element;//在末尾追加新元素
    2.arr.push(element);//入栈,在末尾追加元素
    3.arr.pop();//出栈,返回末尾元素并删除
    4.arr.shift(element);//在数组前面追加一个元素
    5.arr.unshift();//返回数组第一个元素并删除

  • 通过指定数组名以及索引号码,你可以访问某个特定的元素

  • 在一个数组中你可以有不同的对象,可以在一个数组中包含对象元素、函数、数组

var arr = new Array();
arr[0] = 1;
arr[1] = 2;
arr[2] = "三";
arr[3] = "四";
console.log(arr.toString()); //把数组转换为字符串,并返回结果。
//返回:1,2,三,四 console.log(arr.join("+")); //把数组转换成字符串,用括号内的字符隔开
//返回:1+2+三+四

遍历数组:

1.for循环遍历数组

var arr = new Array();
arr[0] = 1;
arr[1] = 2;
arr[2] = "三";
arr[3] = "四";
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}

2.for……in语句按顺序遍历数组

var arr = new Array();
arr[0] = 1;
arr[1] = 2;
arr[2] = "三";
arr[3] = "四";
for(var i in arr){
console.log(arr[i]);
}

JavaScript笔记(2)的更多相关文章

  1. [Effective JavaScript 笔记] 第4条:原始类型优于封闭对象

    js有5种原始值类型:布尔值.数字.字符串.null和undefined. 用typeof检测一下: typeof true; //"boolean" typeof 2; //&q ...

  2. [Effective JavaScript 笔记] 第5条:避免对混合类型使用==运算符

    “1.0e0”=={valueOf:function(){return true;}} 是值是多少? 这两个完全不同的值使用==运算符是相等的.为什么呢?请看<[Effective JavaSc ...

  3. [Effective JavaScript 笔记]第3章:使用函数--个人总结

    前言 这一章把平时会用到,但不会深究的知识点,分开细化地讲解了.里面很多内容在高3等基础内容里,也有很多讲到.但由于本身书籍的篇幅较大,很容易忽视对应的小知识点.这章里的许多小提示都很有帮助,特别是在 ...

  4. [Effective JavaScript 笔记]第27条:使用闭包而不是字符串来封装代码

    函数是一种将代码作为数据结构存储的便利方式,代码之后可以被执行.这使得富有表现力的高阶函数抽象如map和forEach成为可能.它也是js异步I/O方法的核心.与此同时,也可以将代码表示为字符串的形式 ...

  5. [Effective JavaScript 笔记]第28条:不要信赖函数对象的toString方法

    js函数有一个非凡的特性,即将其源代码重现为字符串的能力. (function(x){ return x+1 }).toString();//"function (x){ return x+ ...

  6. 从头开始学JavaScript 笔记(一)——基础中的基础

    原文:从头开始学JavaScript 笔记(一)--基础中的基础 概要:javascript的组成. 各个组成部分的作用 . 一.javascript的组成   javascript   ECMASc ...

  7. 【原】javascript笔记之Array方法forEach&map&filter&some&every&reduce&reduceRight

    做前端有多年了,看过不少技术文章,学了新的技术,但更新迭代快的大前端,庞大的知识库,很多学过就忘记了,特别在项目紧急的条件下,哪怕心中隐隐约约有学过一个方法,但会下意识的使用旧的方法去解决,多年前ES ...

  8. JavaScript笔记目录

    JavaScript笔记目录 一.JavaScript简介 二.在HTML中使用JavaScript ...持续更新中,敬请期待

  9. 蛋糕仙人的javascript笔记

    蛋糕仙人的javascript笔记:https://www.w3cschool.cn/kesyi/kesyi-nqej24rv.html

  10. JavaScript笔记(第一章,第二章)

    JavaScript笔记(第一章,第二章) 第一章: <meta http-equiv="Content-Type" content="text/html; cha ...

随机推荐

  1. vs下qt的信号与槽实现

    实现主窗口中Add按钮的功能, 这一部分要特别注意,除了实现功能代码外,还需自己手动添加一些其他的代码(Qt Creator可以自动添加). 我们需要在2个地方添加代码. 第1个是在addressbo ...

  2. CentOS7设置开机启动方式(图形界面/命令行界面)

    CentOS 7由于使用systemd而不是init,所以不能通过修改inittab文件来修改开机启动模式. 先使用ctrl+alt+f2切换到命令行模式,然后输入命令:systemctl set-d ...

  3. JVM菜鸟进阶高手之路一[z]

    https://mp.weixin.qq.com/s/qD1LFmsOiqZHD8iZX97OfA? 问题现象 代码如下,使用 ParNew + Serial Old 回收器组合与使用 ParNew ...

  4. MATLAB学习(八)神经网络拟合工具箱 Neural Net Fitting使用示例

    >> x=-3:0.2:5;y=x.^2-1;xn=-2:0.1:7; >>     >> %多元函数(z=sin(x2+y2)/(x2+y2))拟合 >&g ...

  5. 在Spring中配置jdbc为什么不能用${username}问题

    楼主在spring中配置jdbc时,引用的是dbcp.jar包,在dataSource.properties配置文件中,有mysql用户名,楼主自然的选择了使用username,密码是root, 然后 ...

  6. python实现迭代法求方程组的根

    有方程组如下: 迭代法求解x,python代码如下: import numpy as np import matplotlib.pyplot as plt A = np.array([[8, -3, ...

  7. android#编写一个聊天界面

    摘自<第一行代码>——郭霖 既然是要编写一个聊天界面,那就肯定要有收到的消息和发出的消息.上一节中我们制作的message_left.9.png可以作为收到消息的背景图,那么毫无疑问你还需 ...

  8. LeetCode刷题7——数字的补数

    一.要求 补数可以直接通过异或运算进行. 二.背景 最近工作中位运算遇到一个问题,温度有正负两种表示,而且还有小数点.例如用四个16进制字节表示,XXXX,其中第一位是占位符,中间两三位为温度的有效值 ...

  9. Leetcode之动态规划(DP)专题-746. 使用最小花费爬楼梯(Min Cost Climbing Stairs)

    Leetcode之动态规划(DP)专题-746. 使用最小花费爬楼梯(Min Cost Climbing Stairs) 数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost ...

  10. MySQL知识篇-nmon监控

    说明1:监控MySQL服务器资源不止一种方式,这种nmon监控图形化.历史记录查询笔记方便,便于MySQL优化后,对比其效率不同,资源利用率不同. 说明2:摘抄自https://www.cnblogs ...