JavaScript笔记 01:基础知识

常用方法

向body中输出内容

document.write("大河之剑天上来!");

弹出一个提示框,框中带有文本输入框

var input = prompt("请输入内容:");
console.log(typeof input); //string
console.log(input); //输入内容

计时器

// 开启一个计时器,传入的参数作为计时器的名字
console.time("timer1");
// 停止计时器
console.timeEnd("timer1");

confirm弹出框

// 参数为提示语句,点击确定返回true,点击取消返回false
var result = confirm("确认删除吗?");
console.log(result);

JS代码编写的位置

写在标签的属性中

  • 这种方式结构与行为耦合,不方便维护,不推荐使用
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JS代码编写的位置</title>
</head>
<body>
	<!-- 可以将代码编写到标签的onclick属性中,点击后代码执行 -->
	<button onclick="alert('大河之剑天上来!');">戳我!</button>
	<!-- 也可以将代码编写到超链接的href属性中,点击后代码执行 -->
	<a href="javascript:alert('长枪一动白龙吟!');">点我!</a>
	<!-- 可以采取这种方式阻止超链接的自动跳转行为 -->
	<a href="javascript:;">再点我!</a>
</body>
</html>

写在script标签中

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JS代码编写的位置</title>
<script type="text/javascript">
	alert("这是script标签中的代码!");
</script>
</head>
<body></body>
</html>

写在外部的js文件中

  • 通过script标签引入
  • 引入外部文件的script标签内部的代码不会执行,如果想要在内部编写代码,需要再加一个script标签,执行顺序就是代码的编写顺序
  • 外部文件可以在不同的页面中同时引用,也可以利用到浏览器的缓存机制,推荐使用
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JS代码编写的位置</title>
<script type="text/javascript" src="dudu.js"></script>
<script type="text/javascript">
	alert("这是script标签中的代码!");
</script>
</head>
<body></body>
</html>

数据类型

数据类型指的就是字面量的类型,在JS中一共有六种数据类型:

  • String 字符串
  • Number 数值
  • Boolean 布尔值
  • Null 空值
  • Undefined 未定义
  • Object 对象

使用 typeof 来检查一个变量的类型

var a = 123;
var b = "hello";
// 返回值是一个字符串
console.log(typeof a);// number
console.log(typeof b);// string

JS可以表示的数值范围

// 最大值
console.log(Number.MAX_VALUE); // 1.7976931348623157e+308
// 0以上的最小值
console.log(Number.MIN_VALUE);// 5e-324

InInfinity

// Infinity表示 超过最大数值的数字 即正无穷
console.log(Number.MAX_VALUE * 6);
// Infinity 的类型
console.log(typeof Infinity);//number
//可以当做字面量使用
var a = Infinity;
console.log(a);

NaN

// 表示 Not A Number
var a = "abc" * "bcd";
console.log(a);// NaN 
// 可以当做字面量来使用
var b = NaN;
console.log(b); // NaN
// NaN 的类型
console.log(typeof b);// number

如果使用JS进行浮点数运算,可能得到一个不精确的结果

null

// null 用来表示一个为空的对象
var a = null;
console.log(a);
// null 的类型
console.log(typeof a); //object

undefined

// undefined 用来表示未定义
var a; // 声明变量但是不赋值
console.log(a); // undefined
// undefined 的类型
console.log(typeof a); // undefined

强制类型转换

将其他的数据类型转换成 String

  • 方式一:toString()
    console.log((123.45).toString()); //123.45
    console.log(true.toString()); //true
    //console.log(null.toString()); //报错
    //console.log(undefined.toString()); //报错
    //注意:null 和 undefined 没有 toString() 方法
    
  • 方式二:String()
    console.log(String(123.45)); //123.45
    console.log(String(false)); //false
    console.log(String(null)); //null
    console.log(String(undefined)); //undefined
    

将其他的数据类型转换成 Number

  • 字符串转数字
    //纯数字的字符串:直接转换即可
    console.log(Number("123.45")); //123.45
    //字符串中有非数字的内容:转换为 NaN
    console.log(Number("12a3.4b5")); //NaN
    //字符串是空串或全是空格的字符串:转换为 0
    console.log(Number("    ")); //0
    console.log(Number("")); //0
    
  • 布尔转数字
    console.log(Number(true)); //1
    console.log(Number(false)); //0
    
  • Null转数字
    console.log(Number(null)); //0
    
  • Undefined转数字
    console.log(Number(undefined)); //NaN
    
  • parseInt() 与 parseFloat()
    // 从字符串的第一位开始读,读到不是数字为止
    console.log(parseInt("123px"));//123
    console.log(parseInt("12.3px"));//12
    console.log(parseFloat("1a2.3px"));//1
    console.log(parseFloat("12.3.4px"));//12.3
    // 如果是非String使用上述函数,会先将其转换为String然后再操作
    console.log(parseInt(true));//NaN
    
  • 数字进制
    /*
    十六进制以 0x 开头
    八进制以 0 开头
    二进制数字以 0b 开头,但兼容性不好
    */
    console.log(0x10);//16
    console.log(010);//8
    console.log(0b10);//2
    // 这种字符串有些会被当成八进制解析
    console.log(parseInt("070"));// 70 or 56
    // 指定数字的进制
    console.log(parseInt("070", 8));// 70
    

将其他的数据类型转换成 Boolean

  • 数字转布尔
    // 除了 0 和 NaN 其余的都是 true
    console.log(Boolean(123));//true
    console.log(Boolean(-123));//true
    console.log(Boolean(0));//false
    console.log(Boolean(Infinity));//true
    console.log(Boolean(NaN));//false
    
  • 字符串转布尔
    // 除了空串,其余的都是 true
    console.log(Boolean("hello"));//true
    console.log(Boolean(""));//false
    console.log(Boolean("    "));//true
    
  • Null 和 Undefined
    console.log(Boolean(null));//false
    console.log(Boolean(undefined));//false
    
  • 对象也会转换为 true

运算符

算术运算符

  • 当对非 Number 类型的值进行运算时,会将这些值转换为 Number,然后再进行运算
  • 任何值和 NaN 做运算结果都是 NaN

一元运算符

  • 可以使用 + 来将其他类型的值转换成 Number

逻辑运算符

  • 如果对非布尔值进行非运算,会先将其转换为布尔值再运算
  • 如果对非布尔值进行与或运算,会先将其转换为布尔值再运算,然后返回原值
    // 如果第一个值为true,则必然返回第二个值
    console.log(1 && 2); // 2
    // 如果第一个值为false,则直接返回第一个值
    console.log(0 && NaN); // 0
    
    // 如果第一个值为true,则直接返回第一个值
    console.log(1 || 2);// 1
    // 如果第一个值为false,则直接返回第二个值
    console.log(0 || NaN);// NaN
    

关系运算符

  • 对于非数值进行比较时,会将其转换为数字然后再比较
  • 任何值和 NaN 做任何比较都是 false
  • 如果符号两侧的值都是字符串,不会将其转换为数字进行比较,而会分别按位比较字符串中每个字符的Unicode编码
    // 在JS中使用Unicode编码,其中2680是十六进制数字
    console.log("\u2680");
    
    <!-- 在页面中使用Unicode编码,其中9856是十进制数字 -->
    <h1 style="font-size: 100px;">&#9856;</h1>
    

相等运算符

  • 如果两个值的类型不同,则会自动进行类型转换,将其转换为相同的类型(一般情况下都会转换为 Number)
    console.log("1" == 1); // true
    console.log("1" != 1); //false
    
  • null 不会转换为数值
    console.log(null == 0); // false
    
  • undefined 衍生自 null,因此这两个值做相等判断时会返回 true
    console.log(null == undefined); // true
    
  • NaN 不和任何值相等,包括它本身
    console.log(NaN == NaN); // false
    
  • 可以通过 isNaN() 函数来判断一个值是否为 NaN
    console.log(isNaN(NaN));// true
    

三元运算符

  • 如果条件表达式的计算结果是一个非布尔值,会将其转换为布尔值,然后再运算
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值