编写位置
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<!-- js代码需要编写到script标签中
script标签一旦用于引入外部文件,就不能编写代码了,即使编写了浏览器也会忽略
如果需要则可以创建一个新的script标签用于编写内部代码
-->
<script type="text/javascript" src="./script/script.js">
//弹出一个窗口
// alert("这是我的第一行js代码");
// 让计算机在页面中输出一个内容
document.write("我的作用是向body中输出内容")
//向控制台输出内容(检查里面的控制台)
console.log("在哪来出来呢");
</script>
</head>
<body>
<!-- 可以将JS代码编写到标签的onclick属性中,
当我们点击按钮时,js代码才会执行 -->
<button onclick="alert('点击标签嘛~~')">我是一个标签</button>
<!-- 可以将js代码写在超链接的href中,这样当点击超链接时,会执行js代码 -->
<a href="javascript:alert('点击一个超链接')">我是一号超链接</a>
<a href="#">我是二号超链接</a>
</body>
</html>
变量、
标志符
在JS中所有的可以由我们自主命名的都可以称为是标识符
* - 例如:变量名、函数名、属性名都属于标识符
* - 命名一个标识符时需要遵守如下的规则:
* 1.标识符中可以含有字母、数字、_、$
* 2.标识符不能以数字开头
* 3.标识符不能是ES中的关键字或保留字
* 4.标识符一般都采用驼峰命名法
* - 首字母小写,每个单词的开头字母大写,其余字母小写
* helloWorld xxxYyyZzz
*
* - JS底层保存标识符时,实际上是采用的Unicode编码,
* 所以理论上讲,所有的utf-8中含有的内容都可以作为标识符
字符串
数据类型指的就是字面量的类型
* 在JS中一共有六种数据类型
* 1、String 字符串
* 2、Number 数值
* 3、Boolean 布尔值
* 4、Null 空值
* 5、Undefined 未定义
* 6、Object 对象
* 其中String Number Boolean Null Undefined属于基本数据类型
* 而Object属于引用数据类型
*/
/*
* String字符串
* - 在JS中字符串需要使用引号引起来
* - 使用双引号或单引号都可以,但是不要混着用
* - 引号不能嵌套,双引号不能放双引号,单引号不能放单引号
转义字符
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript">
var str = 'hello';
str = '我说:"今天天气真不错!"';
str = "我说:\"今天\t天气真不错!\"";
str = "\\\\\\";
console.log("1111")
//输出字面量 字符串str
//alert("str");
//输出变量str
alert(str);
var str2 = "hello";
str2 = "你好";
str2 = 3;
//alert("hello,你好");
//console.log("我就是不出来~~~");
document.write("<");
</script>
</head>
<body>
</body>
</html>
Number类型
在JS中所有的数值都是Number类型,
* 包括整数和浮点数(小数)
*
* JS中可以表示的数字的最大值
* Number.MAX_VALUE
* 1.7976931348623157e+308
*
* Number.MIN_VALUE 大于0的最小值
* 5e-324
*
* 如果使用Number表示的数字超过了最大值,则会返回一个
* Infinity 表示正无穷
* -Infinity 表示负无穷
* 使用typeof检查Infinity也会返回number
* NaN 是一个特殊的数字,表示Not A Number
* 使用typeof检查一个NaN也会返回number
*/
/*
可以使用一个运算符 typeof
来检查一个变量的类型
语法:typeof 变量
检查字符串时,会返回string
检查数值时,会返回number
* */
/*
*在JS中整数的运算基本可以保证精确
*/
/*
* 如果使用JS进行浮点运算,可能得到一个不精确的结果
* 所以千万不要使用JS进行对精确度要求比较高的运算
*/
//运算最终要转为二进制运算,二进制无法表示1/10
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 在JS中所有的数值都是Number类型,
* 包括整数和浮点数(小数)
*
* JS中可以表示的数字的最大值
* Number.MAX_VALUE
* 1.7976931348623157e+308
*
* Number.MIN_VALUE 大于0的最小值
* 5e-324
*
* 如果使用Number表示的数字超过了最大值,则会返回一个
* Infinity 表示正无穷
* -Infinity 表示负无穷
* 使用typeof检查Infinity也会返回number
* NaN 是一个特殊的数字,表示Not A Number
* 使用typeof检查一个NaN也会返回number
*/
/* 可以使用一个运算符 typeof 来检查一个变量的类型
语法:typeof 变量
检查字符串时,会返回string
检查数值时,会返回number */
var a = 123; //数字123
var b = "123"; //字符串123
console.log(typeof b);
a = -Number.MAX_VALUE * Number.MAX_VALUE;
console.log(a);
a = Infinity; //字面量
console.log(a);
console.log(typeof a);
a = "abc" * "bcd";
console.log(a)
console.log("* : " + typeof a);
a = NaN;
console.log(typeof a);
a = Number.MIN_VALUE;
console.log("Number.MIN_VALUE : " + a);
/*
* 在JS中整数的运算基本可以保证精确
*/
var c = 1865789 + 7654321;
/*
* 如果使用JS进行浮点运算,可能得到一个不精确的结果
* 所以千万不要使用JS进行对精确度要求比较高的运算
*/
var c = 0.1 + 0.2;
//运算最终要转为二进制运算,二进制无法表示1/10
console.log("0.1 + 0.2 : " + c);
</script>
</head>
<body>
</body>
</html>
_强制类型转换-String
指将一个数据类型 强制转换为 其他的数据类型;
类型转换 主要指,将 其他的数据类型,转换为 String、Number、Boolean。
将其他的数据类型转换为String
转换方式1:调用变量的toString()方法
调用被转换数据类型的toString()方法
- 该方法不会影响到原变量,它会将转换的结果返回
- 但是注意:null和undefined这两个值没有toString()方法,
如果调用它们的toString()方法,会报错!
转换方式2:调用String()函数
方式二:
- 调用String()函数,并将被转换的数据作为参数传递给函数
- 使用String()函数做强制类型转换时,
对于Number和Boolean实际上就是调用的toString()方法
但是对于null和undefined,就不会调用toString()方法
它会将 null 直接转换为 "null"
将 undefined 直接转换为 "undefined"
强制类型转换-Number
1、转换方式1:使用Number()函数
字符串 --> 数字
如果是纯数字的字符串,则直接将其转换为数字
如果字符串中有非数字的内容,则转换为NaN
如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
布尔 --> 数字
true 转成 1
false 转成 0
null --> 数字 0
undefined --> 数字 NaN
转换方式2:parseInt()、parseFloat()
这种方式专门用来对付字符串
- parseInt() 把一个字符串转换为一个整数
- parseFloat() 把一个字符串转换为一个浮点数
其他基础链接
if练习3里面有个prompt函数
嵌套for循环、break和continue、对象、数据类型、对象字面量、函数
变量作为属性名
函数的返回值、实参、立即执行函数、方法、全局作用域、函数作用域、提前声明、this、工厂方法创建对象、构造函数
JavaScript基础09-day11【原型对象、toString()、垃圾回收、数组、数组字面量、==数组方法==】
JavaScript基础10-day12【数组方法、call和apply、arguments、Date、Math、字符串方法、正则表达式】
call和apply的区别
-
共同点
call(对象,param1,param2,…)和apply(对象,[param1,param2,…])的共同点:都是用来改变函数体内this的指向,函数的第一个参数代表函数体内的this的指向。
如果参数为空或者为null,则this对象的作用域是全局作用域,在浏览器中则指向window对象。但在严格模式下,函数体内的this=null -
不同点
call(对象,param1,param2,…)和apply(对象,[param1,param2,…])不同点,call()传入的参数数量不固定,从第二个参数开始是具体的参数,apply()接受两个参数,第二个参数是一个带下标的集合,类数组或数组;
this的情况:
以函数形式调用时,this永远都是window;
以方法的形式调用时,this是调用方法的对象;
以构造函数的形式调用时,this是新创建的那个对象;
使用call和apply调用时,this是指定的那个对象。
SNBNUO
S(两个)NB(两个)NU O(object array function)
JS数据中一共有8种
ES5中有6种:Number、String、Boolean、Undefined、Null、Object
ES6新增了Symbol:这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记
谷歌6版本bigInt:是指安全存储、操作大整数
基本数据类型(值类型):Number、String、Boolean、Undefined、Null
引用数据类型:Object。里面包含function、 Data、Array
JavaScript基础12-day14【DOM查询(获取元素节点、获取元素节点的子节点)、全选练习、DOM增删改、DOM添加删除记录、Window对象方法】