JavaScript语言
1.脚本语言,是一种解释型的脚本语言,直接执行不同于c、Java先编译后执行
2.基于对象:是半面向对象。
3.简单:弱类型变量(可以不直接声明变量类型)
4.跨平台:浏览器运行环境
5.嵌入式:
js的ES6版本
js的三个主要组成部分:
1.ecmascript(核心也就是java基础)
2.Dom(文档对象模型)
3bom(浏览器对象模型)
javaScript在页面中的位置
可以将JavaScript代码放在html文件中任何位置。
放在head部分: 最常用的方式是在页面中head部分放置script元素,head部分会先加载,浏览器解析head部分就会执行这个代码,
然后才解析页面的其余部分。所以进行页面显示初始化的js必须放在head里面。
放在body部分: JavaScript代码在网页读取到该语句的时候就会执行。也就是按照顺序执行。
script标签可以有多个。
基本语法
变量的声明
let 变量名 = 变量值
// var 变量名 = 变量值;
// let是关键词,后面跟变量名。表示声明一个变量,
// 变量的数据类型由所赋值的类型来决定。
.js中的数据类型
js中的数据类型有六种:
undefined-未定义类型:未被赋值的变量,值为undefined
boolean-布尔类型:值为true/false
number-数字类型:任何数字(NaN也是number类型,表示“非数”)
string-字符串类型:值用引号(单引号或者双引号)括起来
object-对象类型:null、数组、Date等
function-函数类型:function函数
let num;
console.log(typeof num) //返回undefined
num = 10;
console.log(typeof num) //返回number
num = 'abc';
console.log(typeof num) //返回string
num = true;
console.log(typeof num) //返回boolean
function getDate(){} //函数把方法看做一种数据类型,这里的函数名就是一种变量
console.log(typeof getDate) //返回function
num = [];
console.log(typeof num) //返回object
num = new Date();
console.log(typeof num) //返回object
num = null;
console.log(typeof num) //返回object
console.log(parseInt('a')+100);//非数,一种特殊的值
console.log(isNaN('123'));//false 非数判断但里面是数字所以错误
//这个方法就可以判断输入的内容是否是纯数字
console.log(10/0);//返回Infinity
js中的运算符优先级和Java一样 算数运算>比较运算符>逻辑运算符>赋值运算符
= 相等运算符 运行时,“==”操作符会自动将两端的操作数转换为同一种数据类型后再作比较。
console.log(1=='1'); //true
console.log('123'=='123.0'); //false
=== 严格相等(等同运算符 ) “===”是严格意义上的相等,两个值和它们的类型完全一致时才返回true。
console.log(1==='1'); //false
js中的数据类型转换
隐式转换:减、乘、除可自动进行隐式转换。
let num1 = '10';
let num2 = '5';
console.log(num1-num2) //5
console.log(num1*num2) //50
console.log(num1/num2) //2
强制转换:
parseInt() :将字符串转换成整数。 parseFloat() :将字符串转换成浮点数。
let str1 = '10';
let str2 = '10.5'
console.log(parseInt('10')+parseFloat('10.5')); //20.5
流程控制语句
if else
switch
while
do while
for
Math.trunc()方法去除数字的小数部分,保留整数部分。
js中的作用域(也就是变量的使用范围)
只有函数作用域,没有块级作用域
if(true){
var num1 = 10;
}
function say(){
var num2 = 20;
}
console.log(num1); //10 (if块没有独立作用域,所以可以访问)
console.log(num2); //Uncaught ReferenceError: num2 is not defined
声明变量时let与var的区别
使用let声明的变量就存在块级作用域
if(true){
let num1 = 10;
}
function say(){
let num2 = 20;
}
console.log(num1); //Uncaught ReferenceError: num1 is not defined
console.log(num2); //Uncaught ReferenceError: num2 is not defined
创建数组
//1、创建数组时不指定长度
let arr = new Array();
//2、创建数组时指定长度(一般不使用)
let arr = new Array(5);
//3、创建数组时直接赋值
let arr = new Array(10,20,30);
//4、创建数组时直接赋值
let arr = [66,80,90,77,59];
使用数组
arr.length 是属性
带括号的是方法string.length()
let arr = [55,23,89,65,11];
console.log(arr.length); //5
//遍历数组
for(let i=0;i<arr.length;i++){
console.log(arr[i]);
}