JavaScript基础学习

JavaScript的输出输出方式

输入: prompt

// 弹出一个输入框
prompt(“请输入您的姓名:”);

在这里插入图片描述

输出: alert

<script> // 弹出一个输出框 alert("hello"); </script>

1
2
3
4
弹出一个警示对话框, 输出结果
在这里插入图片描述

输出: console.log
在控制台打印一个日志(供程序员看)

// 向控制台输出日志
console.log(“这是一条日志”);

在这里插入图片描述

基本数据类型

JS 中内置的几种类型

number: 数字. 不区分整数和小数.
boolean: true 真, false 假.
string: 字符串类型.
undefined: 只有唯一的值 undefined. 表示未定义的值.
null: 只有唯一的值 null. 表示空值.
number 数字类型
JS 中不区分整数和浮点数, 统一都使用 “数字类型” 来表示. 0,-1,123,…小数,复数,

var a = 1;
var a = 07; // 八进制整数, 以 0 开头
var b = 0xa; // 十六进制整数, 以 0x 开头
var c = 0b10; // 二进制整数, 以 0b 开头
1
2
3
4
一个八进制数字对应三个二进制数字
一个十六进制数字对应四个二进制数字. (两个十六进制数字就是一个字节)
特殊的数字值

Infinity: 无穷大, 大于任何数字. 表示数字已经超过了 JS 能表示的范围.

-Infinity: 负无穷大, 小于任何数字. 表示数字已经超过了 JS 能表示的范围.

NaN,表示Not a Number不是一个数字,但是属于Number类型。

var max = Number.MAX_VALUE;
// 得到 Infinity
console.log(max * 2);
// 得到 -Infinity
console.log(-max * 2);
// 得到 NaN
console.log(‘hehe’ - 10);
1
2
3
4
5
6
7
在这里插入图片描述

注意:

负无穷大 和 无穷小 不是一回事. 无穷小指无限趋近与 0, 值为 1 / Infinity
‘hehe’ + 10 得到的不是 NaN, 而是 ‘hehe10’, 会把数字隐式转成字符串, 再进行字符串拼接.
可以使用 isNaN 函数判定是不是一个非数字
string字符串
基本规则
字符串字面值需要使用引号引起来, 单引号双引号均可

var a = “haha”;
var b = ‘hehe’;
var c = hehe; // 运行出错
1
2
3
当字符串本身存在引号

var msg = “My name is “zhangsan””; // 出错
var msg = “My name is “zhangsan””; // 正确, 使用转义字符. " 来表示字符串内部的引号.
var msg = “My name is ‘zhangsan’”; // 正确, 搭配使用单双引号
var msg = ‘My name is “zhangsan”’; // 正确, 搭配使用单双引号
1
2
3
4
一些转义字符
有些字符不方便直接输入, 于是要通过一些特殊方式来表示.

\n


"
\t
创建字符串对象的方式

第一种:var s=“sag”;(小String,属于String类型)
第二种:var a2= new String(“ab”);(大String,属于Object类型)
boolean
在boolean类型中有一个Boolean()函数,会将非boolean类型,转换成boolean类型。

当某个地方一定是boolean类型时,会自动转换成boolean类型。例如if后面的括号。
NaN,0,“”,null,undefined会自动转换成false.
console.log(true + 1);
console.log(false + 1)
1
2
这样的操作其实是不科学的. 实际开发中不应该这么写.
undefined 未定义数据类型
如果一个变量没有被初始化过, 结果就是 undefined, 是 undefined 类型

var a;
console.log(a)
1
2
undefined 和字符串进行相加, 结果进行字符串拼接

console.log(a + “10”); // undefined10
1
undefined 和数字进行相加, 结果为 NaN

console.log(a + 10);
1
null 空值类型
null 表示当前的变量是一个 “空值”.

var b = null;
console.log(b + 10); // 10
console.log(b + “10”); // null10
1
2
3
注意:

null 和 undefined 都表示取值非法的情况, 但是侧重点不同.
null 表示当前的值为空. (相当于有一个空的盒子)
undefined 表示当前的变量未定义. (相当于连盒子都没有)
关于相等的细节
undefined == null 得到true

undefined === null 得到false

NaN 不等于任何数据,包括它自己

NaN == NaN 永远都是false

那么如何判断是否为NaN?isNaN(数据)如果是NaN得到true 否则得到false

JS中的和=的比较

是自带类型转换的比较
=是不带自带类型的比较
0
"0"//true
0
=“0”//false
1
2
0==“0”,因为两个要比较的数据类型不等,所以先对其中一个做类型提升(这里把0->“0”)
0===“0” 不做类型提升。两个比较的类型不同,所以结果就是false
一般建议使用===和!==去做比较,不会出现一些内在逻辑错误
其他的运算符和条件判断符的用法跟Java是差不多的

数组

创建数组
使用 new 关键字创建

// Array 的 A 要大写
var arr = new Array();
1
2
使用字面量方式创建 [常用]

var arr = [];
var arr2 = [1, 2, ‘haha’, false]; // 数组中保存的内容称为 “元素”
1
2
数据列表可以写任意个数据,如果多个数据用逗号隔开
数组跟变量一样,数组中的元素也是无类型的((本质是一个引用类型)),所有数组可以保存任意的类型的元素,数组中放数组也可以
注意: JS 的数组不要求元素是相同类型.
这一点和 C, C++, Java 等静态类型的语言差别很大. 但是 Python, PHP 等动态类型语言也是如此.

获取数组元素
使用下标的方式访问数组元素(从 0 开始)

var arr = [‘小猪佩奇’, ‘小猪乔治’, ‘小羊苏西’];
console.log(arr);
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
arr[2] = ‘小猫凯迪’;
console.log(arr);
1
2
3
4
5
6
7
如果下标超出范围读取元素, 则结果为 undefined

console.log(arr[3]); // undefined
console.log(arr[-1]); // undefined
1
2
非法下标不会报错,但是会显示如果是读取值会获得undefined,如果是修改操作,那么会产生空洞数据
注意: 不要给数组名直接赋值, 此时数组中的所有元素都没了.

var arr = [‘小猪佩奇’, ‘小猪乔治’, ‘小羊苏西’];
arr = ‘小猫凯迪’;
1
2
新增数组元素
通过修改 length 新增

相当于在末尾新增元素. 新增的元素默认值为 undefined

var arr = [9, 5, 2, 7];
arr.length = 6;
console.log(arr);
console.log(arr[4], arr[5]);
1
2
3
4

通过下标新增

如果下标超出范围赋值元素, 则会给指定位置插入新元素

var arr = [];
arr[2] = 10;
console.log(arr)
1
2
3
此时这个数组的 [0] 和 [1] 都是 undefined
使用push()新增

在数组末尾添加元素
也可以一次性添加多个,用逗号隔开
返回值是新长度
var arr = [9, 5, 2, 7, 3, 6, 8];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
newArr.push(arr[i]);
}
}
console.log(newArr);
1
2
3
4
5
6
7
8
unshift()

在数组第一个位置添加元素
也可以一次性添加多个,用逗号隔开
返回值是新长度
删除数组中的元素
使用 splice 方法删除元素

var arr = [9, 5, 2, 7];
// 第一个参数表示从下表为 2 的位置开始删除. 第二个参数表示要删除的元素个数是 1 个
arr.splice(2, 1);
console.log(arr);
// 结果
[9, 5, 7]
1
2
3
4
5
6
使用pop()方法删除元素

删除数组末尾的元素(一次只能删一个)
返回值就是被删除的元素
使用shift()方法删除元素

删除数组的第一个元素
返回值是被删除的元素

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值