Javascript基础笔记

1. 书写位置

与css一样分为行内、内嵌和外部。
常用的是外部,使用单引号,标签中间不可以加其他内容。

<script src="demo.js">
</script>

2.类型

数字型
  • 可以为整数或小数
  • 最大值Number.MAX_VALUE,最小值Number.MAX_VALUE
  • 无穷大,infinity
  • 无穷小,-infinity
  • NAN,not a number,非数值型
3.字符型
  • 引号外单内双,内双外单
  • .length属性获得字符串的长度
  • 字符串 + 任何类型 = 拼接的字符串
4.获得数据类型
  • “tpyeof 数据”
  • prompt取过来的值是字符串型的
5.类型转换
5.1转化成字符串
  • 变量. toString()
  • String(变量)强制转化
  • 变量+ ‘字符串’
5.2转化成数字类型
  • parselnt(String)
  • parseFloatString)
  • Number(String)
  • 隐式转换:字符型 - / * 0
5.3转化成布尔类型

Boolean(),无意义的类型返回的是ture,有意义的返回false。

6.逻辑短路原理

进行逻辑计算时,如果左边的算式已有结果,则不会进行到右边。

6.1逻辑与
  • 表达式1 && 表达式2
  • 如果表达式1为真,则返回表达式2
  • 如果表达式1为假,则返回表达式1

在这里插入图片描述

6.2逻辑或
  • 表达式1 && 表达式2
  • 如果表达式1为假,则返回表达式2
  • 如果表达式1为真,则返回表达式1
    在这里插入图片描述
7.运算符优先级
优先级符号顺序
1小括号()
2一元运算符++、 – 、!
3算数运算符先*、 /、%后+、 -
4关系运算符> 、 < 、 >=、 <=
5相等运算符== 、 !=、 ===、 != =
6逻辑运算符先 && 后||
7赋值运算符=
8逗号运算符

关系运算符默认转换数据类型。

8.do while循环

while里是执行循环的条件。
案例:输入用户名和密码,如果用户名为‘admin’,密码为‘123456’就提示登录成功,否则一直弹出输入框。

 <script>
        do {
            var username = prompt('请输入用户名');
            var psw = prompt('请输入用户密码');
        } while (username != 'admin' && psw != 123456);
        alert('登录成功!');
    </script>
9.数组
  • 创建一个空的数组:var arr = [ ];
  • 数组长度:数组名.length
  • 通过修改数组长度来新增数组,新增的元素是undefined
  • 直接修改索引值赋值,如果索引号没有被使用则追加,如果使用了则覆盖
  • 不能直接给数组名赋值
  • 案例:选出数组中大于10的数组成新的数组
    在这里插入图片描述
  • 冒泡排序:输入任意的五个数进行从小到大的排序。
    var arr = [];
        var num = 5;
        for (i = 1; i <= num; i++) {
            arr[i - 1] = prompt('请输入第' + i + '个数');
        };
        for (i = 0; i < arr.length - 1; i++)
            for (j = 0; j < arr.length - i - 1; j++) {
                var temp = 0;
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            };
        console.log(arr);
9.函数
9.1函数结构

== 函数关键字命名==
函数声明:
function 函数名(形参){
};
函数调用:
函数名(实参);
必须先声明再调用,如果实参大于形参,则多出的实参不被接受,如果实参小于形参,则多出的形参定义为undefined。
== 函数表达式命名(匿名函数)==
var 变量名 = function(){};
调用时,使用变量名(形参)

9.2return注意事项
  • 作为终止,return后面的代码将不会执行
  • 只能返回一个值,不管写多少个值,值返回最后一个值
  • 没有return返回undefined
9.3arguments对象
  • 存储了所有的实参
  • 伪数组
  • 有length属性
  • 按索引存储
  • 可以遍历
  • 只有函数才有
9.4作用域链
  • 内部函数可以访问外部函数的变量,采用链式查找
  • 采取就近原则
9.5预解析

将变量var和函数function提前到作用域的最前面

  • 变量提升:将变量声明提升到当前作用域的最前面,而赋值不提升
  • 函数提升:将函数声明提升到当前作用域的最前面,而调用不提升
    案例:
    在这里插入图片描述在这里插入图片描述答案为9*6 报错
10对象
10.1对象的三种方式
(1)

var 对象名 = {
属性名:属性值,
方法名:function(){},
}
调用属性:
1.对象名.属性名
2.对象名[‘属性名’]
调用方法:
对象名.方法名()

(2)

利用new object创建对象,利用等号赋值的方法添加对象的属性和方法,每个属性和方法用分号分开。
var 对象名 = new Object();
对象名.属性名 = 属性值;
对象名.方法名 =function(){};

(3)

构造函数,用于创建多个属性与方法相似的对象,相当于类。
构造函数声明
function 构造函数名(形参){
this.属性 = 形参;
this.方法 = function(){};
}
构造函数调用:
var 对象名 = new 构造函数名(实参);
注意事项:

  • 构造函数首字母要大些
  • 函数不需要return
  • 调用函数返回的是一个对象
  • 构造函数时必须使用 new
  • 只需要new 构造函数名()就创建了一个对象
  • 构造函数时属性和方法必须添加this,指向创造的对象
    案例:
  function Star(name, type, blood) {
            this.name = name;
            this.type = type;
            this.blood = blood;
            this.attack = function(attack) {
                console.log('攻击:' + attack);//注意字符串的拼接
            };
        }
        var houYi = new Star('houYi', '射手', 100)
        houYi.attack('远攻');
        console.log(houYi);
10.2new关键字

1.创建一个新的空对象
2.this指向这个对象
3.添加新的属性和方法
4.返回这个新对象

10.3遍历对象

for in语句
用法:
for(var 变量名 in 对象名){}
for(var k in obj){
console.log(k) // 输出的是属性名
console.log(obj[k]) // 输出的是属性值
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值