js语言一
Posted 在于折腾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js语言一相关的知识,希望对你有一定的参考价值。
js语言:
javascript:
javascript是脚本语言,是一种轻量级的编程语言。
javascript是可插入html页面的编程代码
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
javascript 的引入方式:
1,在<head></head>内的Script标签内写代码
<script>
// 在这里写你的JS代码
</script>
2,引入额外的js文件,及创建一个js文件,在里面写好你的代码
<script src="myscript.js"></script>
javascript 的注释:
// 表示单行注释
/*
多行注释
多行注释
*/
结束符号以分号(;)为结束符
变量声明:
var 关键字声明, 用法:var 变量名, 变量名不能以数字开头
var name = ‘jerry‘;
var age = 38;
或者 let name = ‘jerry‘;
let声明的变量在局部有效 不会影响全局相同的变量名
var声明的变量是作用与全局 直接改变了全局的
注意:
变量名是区分大小写的,
推荐使用驼峰式命名规则,
不要用关键字去做变量名
常量: 用 const来声明常量,一旦声明,其值就不能改变
const PI = 3.1415;
javascript 数据类型:
Javascript拥有动态数据类型
var x;// 此时x就是undefined
var x = 1; // 此时x就是数字
var x = ‘Alex‘ // 此时x就是字符串
数值类型Number(类似整型+浮点型)在这里不区分整型和浮点型,统称数值类型
var a = 12.34;
var a = 20
数值类型中有一种特殊的叫NaN , 它是数值类型,但是表示不是数字
常用方法:
parseInt("123") // 返回123
parseInt("ABC") // 返回NaN,NaN属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。
parseFloat("123.456") // 返回123.456
parseInt("123.456") // 返回的是123 不能识别小数点,所以要转就用parseFloat
字符串类型 String
字符串用单引号,和双引号
单行文本可以用单引号,双引号
多行文本用~ 多行文本~ 即用~ ~ 此~还可以做替换,和%s作用一样
在这里正常的替换用$符,叫模板字符串
字符串的常用方法
方法 | 说明 |
.length | 返回长度 |
.trim() | 移除空白 |
.trimLeft() | 移除左边的空白 |
.trimRight() | 移除右边的空白 |
.charAt(n) | 返回第n个字符,返回的是字符,括号中的n是索引号 |
.concat(value, ...) | 拼接 |
.indexOf(substring, start) | 子序列位置,通过字符获取索引 |
.substring(from, to) | 根据索引获取子序列 |
.slice(start, end) | 切片 |
.toLowerCase() | 小写 |
.toUpperCase() | 大写 |
.split(delimiter, limit) | 分割 |
拼接字符串一般使用“+”
string.slice(start, stop)和string.substring(start, stop):
两者的相同点:
如果start等于end,返回空字符串
如果stop参数省略,则取到字符串末
如果某个参数超过string的长度,这个参数会被替换为string的长度
substirng()的特点:
如果 start > stop ,start和stop将被交换
如果参数是负数或者不是数字,将会被0替换
silce()的特点:
如果 start > stop 不会交换两者
如果start小于0,则切割从字符串末尾往前数的第abs(start)个的字符开始(包括该位置的字符)
如果stop小于0,则切割在从字符串末尾往前数的第abs(stop)个字符结束(不包含该位置字符)
s1 = ‘eghui‘
s1.substring(0,5) 切片不支持负数,所以了解即可
s1.slice(0,-1) 切片推荐使用slice
s2.split(‘|‘,1) 1 表示从切完的结果后拿出一个结果,切完是数组(即python中的列表)
如果数字超出,就拿最多,不会报错
布尔类型:(全部小写)
true 或 false
var a = true;
var b = false;
""(空字符串)、0、null、undefined、NaN都是false。
null和undefined 的区别:
null表示值是空,一般在需要指定或清空一个变量时才会使用,如 name=null; 即它有,但是为空
undefined表示当声明一个变量但未初始化时,该变量的默认值是undefined。
还有就是函数无明确的返回值时,返回的也是undefined。即只声明了变量,没赋值;
重点;null表示变量的值是空(null可以手动清空一个变量的值,使得该变量变为object类型,值为null),
undefined则表示只声明了变量,但还没有赋值。
数组:(相当于python中的列表)
数组对象的作用是:使用单独的变量名来存储一系列的值
var a = [123, "ABC"];
console.log(a[1]); // 输出"ABC"
方法 | 说明 |
.length | 数组的大小 |
.push(ele) | 尾部追加元素 |
.pop() | 获取尾部的元素 |
.unshift(ele) | 头部插入元素 |
.shift() | 头部移除元素 |
.slice(start, end) | 切片 |
.reverse() | 反转 |
.join(seq) | 将数组元素连接成字符串 |
.concat(val, ...) | 连接数组 |
.sort() | 排序 |
.forEach() | 将数组的每个元素传递给回调函数 |
.splice() | 删除元素,并向数组添加新元素。 |
.map() |
返回一个数组元素调用函数处理后的值的新数组
|
类型查询:
typeof是一个一元运算符(就像++,--,!,- 等一元运算符),不是一个函数,也不是一个语句。
对变量或值调用 typeof 运算符将返回下列值之一:
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
运算符
算数运算符
+ - * / % ++ --
var x=10;
var res1=x++;
var res2=++x;
res1;
10
res2;
12
这里由于的x++和++x在出现赋值运算式,
x++会先赋值再进行自增1运算,而++x会先进行自增运算再赋值!
比较运算符
> >= < <= != == === !==
1 == “1” // true 弱等于
1 === "1" // false 强等于
//上面这张情况出现的原因在于JS是一门弱类型语言(会自动转换数据类型),
所以当你用两个等号进行比较时,JS内部会自动先将数值类型的1转换成字符串类型的1再进行比较,
所以我们以后写JS涉及到比较时尽量用三等号来强制限制类型,防止判断错误
逻辑运算符
&& || ! (and or not)
赋值运算符
= += -= *= /=
流程控制:
一,if-else if (条件1){满足条件1的代码块1}
else if(条件2){满足条件2的代码块;}
else{以上条件都不满足的代码块};
案列:
var a = 10;
if (a > 5){
console.log("a > 5");
}else if (a < 5) {
console.log("a < 5");
}else {
console.log("a = 5");
}
二:switch
switch中的case子句通常都会加break语句,
否则程序会继续执行后续case中的语句。
var day = new Date().getDay();
switch (day) {
case 0:
console.log("Sunday");
break;
case 1:
console.log("Monday");
break;
default:
console.log("...")
}
for
for (var i=0;i<10;i++) {
console.log(i);
}
while
var i = 0;
while (i < 10) {
console.log(i);
i++;
}
三元运算
var a = 1;
var b = 2;
var c = a > b ? a : b
这里的三元运算顺序是先写判断条件a>b
如果条件成立就是冒号前面的值a
条件不成立就是冒号后面的值b
三元运算可以嵌套使用
var a=10,b=20;
var x=a>b ?a:(b=="20")?a:b;
x
10
函数:
JavaScript中的函数和Python中的非常类似,只是定义方式有点区别
普通函数定义
function f1() {
console.log("Hello world!");
}
带参数的函数
function f2(a, b) {
console.log(arguments); // 内置的arguments对象
console.log(arguments.length);
console.log(a, b);
}
带返回值的函数
function sum(a, b){
return a + b;
}
sum(1, 2); // 调用函数
匿名函数方式
var sum = function(a, b){
return a + b;
}
sum(1, 2);
// 立即执行函数 书写立即执行的函数,首先先写两个括号()()这样防止书写混乱
(function(a, b){
return a + b;
})(1, 2);
ES6中允许使用“箭头”(=>)定义函数。
var f = v => v;
// 等同于
var f = function(v){
return v;
}
如果箭头函数不需要参数或需要多个参数,就是用圆括号代表参数部分
var f = () => 5;
// 等同于
var f = function(){return 5};
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2){
return num1 + num2; //这里的return只能返回一个值,如果想返回多个值需要自己手动给他们包一个数组或对象中
}
函数中的arguments参数
function add(a,b){
console.log(a+b);
console.log(arguments.length);
console.log(arguments[0]);//arguments相当于将出传入的参数全部包含,这里取得就是第一个元素1
}
add(1,2)
输出为 3 2 1
注意:
函数只能返回一个值,如果要返回多个值,只能将其放在数组或对象中返回。
函数的全局变量和局部变量
局部变量:
在JavaScript函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它(该变量的作用域是函数内部)。只要函数运行完毕,本地变量就会被删除。
全局变量:
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
变量生存周期:
JavaScript变量的生命期从它们被声明的时间开始。
局部变量会在函数运行以后被删除。
全局变量会在页面关闭后被删除。
作用域
首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。与python作用域关系查找一模一样!
例子:
var city = "BeiJing";
function f() {
var city = "ShangHai";
function inner(){
var city = "ShenZhen";
console.log(city);
}
inner();
}
f(); //输出结果是?ShenZhen
var city = "BeiJing";
function Bar() {
console.log(city);
}
function f() {
var city = "ShangHai";
return Bar;
}
var ret = f();
ret(); // 打印结果是? BeiJing
var city = "BeiJing";
function f(){
var city = "ShangHai";
function inner(){
console.log(city);
}
return inner;
}
var ret = f();
ret(); ShangHai
以上是关于js语言一的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin将超越Java成为Android开发的第一语言?
Kotlin 将超越 Java 成为 Android 开发的第一语言?