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



转载于:https://www.cnblogs.com/Fzhiyuan/p/11483171.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值