js第一次培训基础

1.JavaScript的使用

(1)内部js
在HTML中在script标签中就可以编写JavaScript代码,以下是一个简单演示。

<script>
    alert("Hello,World!");
</script>


(2)引用外部js文件
使用<script type=“text/javascript”src=“js文件路径”>引入外部.js文件

<script type="text/javascript" src="js学习.js"></script>

js文件代码

alert("hello world 1");

(3)行内式

在标签属性内使用 "";

<body onload="alert('hello world3')";>
</body>

2.js的基础语法

1.语句:

           * js代码一行为单位,代码从上往下执行,一行一条语句

           * 语句不加分号结尾,如果一行定义多条语句,每条语句只会必须以分号结尾

           * 表达式不需要以分号结尾

2.注释:
 

// 单行注释,注释内容不可以换行  ctrl+/

/* 多行注释  alt+shift+a			(Visual Studio Code)
注释内容
可以换行
 */

/**
* 文档注释
* 说明类、方法的参数及使用方式。。。
* 功能介绍
*/

3.标识符和关键字 

1.标识符
标识符(Identifier)就是名称的专业术语。JavaScript 标识符包括变量名、函数名、参数名和属性名。

合法的标识符应该注意以下强制规则:

第一个字符必须是字母、下划线(_)或美元符号($)。
除了第一个字符外,其他位置可以使用 Unicode 字符。一般建议仅使用 ASCII 编码的字母,不建议使用双字节的字符。
不能与 JavaScript 关键字、保留字重名。
可以使用 Unicode 转义序列。例如,字符 a 可以使用“\u0061”表示。
示例
在下面示例中,定义变量 a,使用 Unicode 转义序列表示变量名。
 

var \u0061 = "字符 a 的 Unicode 转义序列是 \\0061";
document.write(\u0061);


2.关键字

关键字就是 ECMA-262 规定的 JavaScript 语言内部使用的一组名称(或称为命令)

 这些名称具有特定的用途,用户不能自定义同名的标识符。具体说明如表所示。

在这里插入图片描述

4.变量声明 

 

变量声明,无论发生在何处,都在执行任何代码之前进行处理。
用 var 声明的变量的作用域是它当前的执行上下文,它可以是嵌套的函数,或者对于声明在任何函数外的变量来说是全局。

var a ;      //声明在任何函数外的变量
function inner(){
     a='改变了a的值'
}
inner()   
console.log(a)    //改变了a的值

当赋值给未声明的变量, 则执行赋值后, 该变量会被隐式地创建为全局变量(它将成为全局对象的属性)。

声明和未声明变量之间的差异是:

  1. 声明变量的作用域限制在其声明位置的上下文中,而非声明变量总是全局的。
function inner(){
	 a ="内部a";
	 var b = "内部b" ;     //将会报错
}
inner()   
console.log(a)    //内部a
console.log(b)    //Uncaught ReferenceError: b is not defined

变量提升

由于变量声明(以及其他声明)总是在任意代码执行之前处理的,所以在代码中的任意位置声明变量总是等效于在代码开头声明。这意味着变量可以在声明之前使用,这个行为叫做“hoisting”。“hoisting”就像是把所有的变量声明移动到函数或者全局代码的开头位置。

bla = 2
var bla;

// 可以隐式地(implicitly)将以上代码理解为:

var bla;
bla = 2;

5.数据类型 

1、Number数值类型
Number类型包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一个数字)两种值
注意:在js中浮点数的精度是17位,计算是二进制的计算数 据,所以得到的不是整数

var num1 = 0.1;

var num2 = 0.2;

console.log(num1 + num2);   //0.30000000000000004



NaN:非数字类型,属于数值型基本数据类型

特点:
1):设计任何的NaN操纵都会返回NaN
console.log('ab'/10); // NaN
2) NaN不等于自身。
console.log(NaN == NaN);// false;

判断是否是Number类型

1、isNaN:判断是否是一个非数字类型,传入的非数字类型,返回true,否则返回false
注意:传入的参数首先会被转化为数值,如果参数类型为对象类型,先调用valueOf()方法,再确定该方法返回的值是否可以转换为数值类型,如果不能,再调用toString()方法,再确定返回值
2、typeof
Number():可以用于任何的数据类型
parseInt:提取 整数数值
paseFloat:提取浮点数值

2、String 字符串类型
特点:
1、字符串的单引号和双引号作用效果一样
2、字符串有length属性,可以取得字符串的长度
3、字符串的值是不可变的,所以很多的字符串的api不会改变原字符串值

字符串转换:
 

String():适用于任何的数据类型(null -> null undefined -> undefined)
toString():null和undefined没有这个功能
console.log(null.toString()); //error 报错

3、Boolean 布尔类型
该类型只有两个值:true、false
转换为`boolean`:    `Boolean()`

Boolean(undefined):false

Boolean(null):false

Boolean(非空对象包括空数组[]和空对象{}):true

Boolean(非0): true || Boolean(0和NaN):false

Boolean(非空包括空格字符串):true || Boolean(''):false


出现场景:
(1)条件语句导致执行的隐士类转换
(2)字面量或变量定义

类型转换:

Number(true): 1     ||   Number(false) : 0

String(true):'true'      ||   String(false):'false'



4、Null 空对象指针类型
如果定了一个对象,初始化可以为null,因为null的基本类型是Null,在if语句中默认转化为false,在和数值计算默认为0
出现场景:对象不存在
类型转换:

Booleam(null)  false

Number(num)  0

String(null)  'null'

Number(null) // 0

5、Undefined
申明了变量但是没有初始化,默认为undefined,在if语句中默认转化为false,
undefined:表示‘缺少值’,就是应该有一个值,但是没有定义,以下用法是典型的出现undefined情况
(1)变量被申明,等于undefined
(2)调用函数时,应该提供的参数没有提供,该参数等于undefined
(3)对象没有赋值的属性,该属性值为undefined
(4)函数没有返回值,默认返回undefined

类型转换:
 

Boolean(undefined):  false
 
Number(undefined):  NaN

String(undefined):  'undefined'

6.js类型转换 

JS 种的类型转换,只有如下三种情况:

  • 转为布尔值
  • 转为数字
  • 转为字符串

以下是各种数据类型之间相互转换的表格:

原始值类型目标值类型结果
boolean布尔值本身值,false 就为 false ,true 就为 true
number布尔值0 和 NaN 为 false 否则都为 true
string布尔值除了空字符串为 false 其他都为 true
undefined、null布尔值false
symbol布尔值true
对象布尔值true
数组布尔值true

原始值类型目标值类型结果
boolean字符串true: 'true';false: 'false'
number字符串数字字符串
string字符串字符串本身值
undefined、null字符串抛错
symbol字符串symbol 字符串
对象字符串'[object Object]'
数组字符串空数组转为空字符串,否则转为由逗号拼接每一项的字符串

原始值类型目标值类型结果
boolean数字true 转换为 1,false 转换为 0
number数字数字本身
string数字除了都是数字组成的字符串,能转换成数字外,其他都是 NaN
null数字0
undefined数字NaN
symbol数字抛错
对象数字NaN
数组数字空数组转换为0;只有一项(数字)的数组转换为这个数字;只有一项(空字符串、undefined、null)的数组转换为0;除上述以外情况的数组转换为 NaN

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

。疯狂派大星。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值