0% found this document useful (0 votes)
14 views26 pages

Javascript Notes

Uploaded by

target.fabrics01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views26 pages

Javascript Notes

Uploaded by

target.fabrics01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

Share

Absolutely! The .this keyword in JavaScript is simply referenced as this (without a dot prefix).
Home
It’s a core concept in the language, and it can be a little tricky because its value depends on how
and where a function is called. Let me break it down for you:

Discover
What is this in JavaScript?

this refers to the execution context (or the object) in which a function is running.
Spaces
The value of this is determined at runtime, and differs based on how the function is called.

Common Usages of this

1. In Global Scope

js
console.log(this); // In browsers, 'this' refers to the window object

2. Inside an Object Method

js
const obj = {
name: 'Alice',
greet: function() {
console.log(this.name);
}
};

obj.greet(); // 'this' refers to obj; prints "Alice"

Account

Upgrade

Install
3. Inside a Regular Function

js
function foo() {
console.log(this);
}
foo(); // In non-strict mode: 'this' is the global object (window/node global)
// In strict mode: 'this' is undefined

4. In an Event Handler

js
<button id="myBtn">Click</button>
<script>
document.getElementById('myBtn').addEventListener('click', function() {
console.log(this); // 'this' refers to the button element
});
</script>

5. With Arrow Functions


Arrow functions don’t have their own this . Instead, they inherit this from their surrounding
(lexical) scope.

js
const obj = {
name: "Alice",
greet: () => {
console.log(this.name);
}
};
obj.greet(); // undefined (or window.name in browsers)

How to Set this

You can explicitly set this using .call() , .apply() , or .bind() .


js
function show() {
console.log(this.value);
}

const obj = { value: 42 };

Answer
show.call(obj); // prints 42

Summary Table
Context What this refers to

Global scope (non-strict) Global object (window/global)

Inside object method That object

Detached function (strict) undefined

Event handler (DOM) The DOM element itself

Arrow function Lexical this (outer scope)

Key Takeaway

this is determined by how a function is called, not where it's defined.


Arrow functions inherit this from their parent scope.
If you want to see a specific example or scenario, just let me know!

Share Export Rewrite


Sure! I see you’ve tried to write an object in JavaScript and use this inside a method. There are
some syntax issues in your code, so let's correct it and explain.
Your Code (Corrected):

js
let a = {
name: "Sandeep",
age: 20,
Gmail: "sandipsharmagmail.com",
fun: function() {
console.log(this.name, "Age", this.age);
}
};
a.fun();

Key Points:

1. Method Syntax:
The correct way to define a function as a property is using fun: function() { ... }

2. Property Name:
Use the correct casing for property names ( age instead of Age for consistency).
3. Calling the Method:
Use a.fun(); to call the function; not a(); (which tries to call the whole object as a function).

What happens here?

When you call a.fun(); , this inside fun refers to the object a .
So, this.name will be "Sandeep" and this.age will be 20 .

Output:

text
Sandeep Age 20

In summary
Answer
Inside the method fun , this refers to the object a .
That's why you get "Sandeep Age 20" printed.
Let me know if you'd like more examples or further explanation!
Share Export Rewrite

Great! You're experimenting with JavaScript objects and the this keyword. There are a few
syntax issues in your code. Let me show you the correct way and explain what happens with the
this keyword.

1. Corrected Code

js
let a = {
name: "Sandeep",
age: 20,
Gmail: "sandipsharmagmail.com",
fun: function() {
console.log(this.name + ", Age " + this.age);
}
};
a.fun();
2. What was wrong?

1. Method Syntax:
JavaScript object methods are defined as fun: function() { ... } , not Call function(){
... } .

2. Property Names:
JavaScript is case-sensitive. So use age in both the property and inside the function, not Age in
one place and age in the other.
3. String Concatenation:
To combine strings and variables, use + to concatenate (no comma after this.name+ ).

4. Calling the Method:


The correct method call is a.fun(); (which you wrote correctly on the last line!).
Answer
3. How does this work?

Inside _fun_ :
this refers to the object ( a ) because you called the method as a.fun() .

So, this.name is "Sandeep" and this.age is 20 .

4. What will it print?

text
Sandeep, Age 20

If you have more questions about this or objects in JavaScript, just ask!

Share Export Rewrite

Great attempt! However, your code has some syntax errors, mostly around the way you are
defining the function inside the object. Here’s what you need to correct:
1. Fix the function definition

You should define the method as fun: function() { ... }

It should not have Call before function

The property name should be consistent and correct (you used both Age and age )

2. String Concatenation

Make sure to concatenate the strings properly: this.name + ", Age " + this.age

3. Capitalization

JavaScript property names are case-sensitive. Pick either Age or age and use it consistently.

Corrected Code

js
let a = {
name: "Sandeep",
age: 20,
Gmail: "sandipsharmagmail.com",
fun: function(){
console.log(this.name + ", Age " + this.age);
}
};
a.fun();

What does it output?

text
Sandeep, Age 20

Explanation about this :

Inside the fun method, this refers to the object a . So, this.name is "Sandeep" and this.age
is 20 .
LetAnswer
me know if you want more examples or further explanation!

Share Export Rewrite


Save this thread as a Space
Organize your research by saving context for future searches Create Space

You are very close! There is just a small syntax error in your code:
You wrote Call function() instead of function() .

Also, the property name should be age (lowercase) to match how you use this.age .

Share
Answer Export Rewrite
Your object is perfectly defined! 🎉

You’ve created an object named user with two properties — name and email .
Here it is again:

js
let user = {
name: "Priya",
email: "[email protected]",
};

If you’d like to practice, you can add methods to this object. For example, you could add a method
to print the email, as in your previous question.

Example challenge:
Add a method showEmail to showEmail to

Answer
Share Export Rewrite

Your code is absolutely correct! 👏

Here’s your code for reference:

js
let user = {
name: "Priya",
email: "[email protected]",
call: function(){
console.log("The Email of User =:", this.email);
}
};
user.call();

What does it do?

You created an object user with properties name , email , and a method called call .

When you run user.call(); , it will output:

text
The Email of User =: [email protected]

Why does it work?

Inside the call method, this refers to the user object, so this.email gives you the email
property of the user.
Tip
As mentioned earlier, call is also a built-in method name in JavaScript
( Function.prototype.call ). Your usage here works, but for best practice and to avoid
anyAnswer
confusion in larger codebases, you might want to use a different name like showEmail
or printEmail .

But your code works as expected! Great job! 👍 Would you like more object method challenges
or explanations?

Share Export Rewrite

Nice attempts! There are some small syntax errors in both your objects. Let’s review and
correct them:

1. Rectangle Area Calculation


Your code (with errors):

js
let rectangle = {
length: 10,
width: 5,
let area: function(){
console.log("The Area of Rec:", this.length*this.width);
}
};

Corrections:

Do not use let inside an object.


Just use area: function() {...} as a method.
Corrected version:
js
let rectangle = {
length: 10,
width: 5,
area: function() {
console.log("The Area of Rec:", this.length * this.width);
}
};
rectangle.area(); // Output: The Area of Rec: 50

2. Print Full Name


Your code (with errors):

js
let person = {
firstName: "Rahul",
lastName: "Singh",
fullName: function(){
console.log("Hello, my name is", this.firstName+this.lastName);
}
};
person.fullName();

Corrections:

Add a space between first and last name when concatenating.


Corrected version:

js
let person = {
firstName: "Rahul",
lastName: "Singh",
fullName: function() {
console.log("Hello, my name is", this.firstName + " " + this.lastName);
}
};
Answer
person.fullName(); // Output: Hello, my name is Rahul Singh

If you have more such code to practice or want to try more challenges, let me know! 😊

Share Export Rewrite


Absolutely! Here’s a detailed explanation of object methods in JavaScript, starting from the
basics and moving to advanced usage.

🚀 Object Methods in JavaScript: Beginner to Advanced


1. What is an Object in JavaScript?
An object is a collection of properties, where each property is a key-value pair. The value can be
anything — string, number, array, another object, or a function.

js
let car = {
brand: "Honda",
year: 2021
};

Here, car is an object with brand and year properties.

2. What is a Method?
A method is just a function stored as a property of an object.

js
let person = {
name: "Ankit",
greet: function() {
console.log("Hello!");
}
};
person.greet(); // "Hello!"

Here, greet is a method on the person object.

3. The this Keyword in Methods


Within a method, this refers to the object on which the method was called.
js
let dog = {
name: "Bruno",
bark: function() {
console.log("Woof! My name is", this.name);
}
};
dog.bark(); // "Woof! My name is Bruno"

Here, this.name refers to dog.name .

4. Different Ways to Define Methods


a. Regular Function Syntax

js
let user = {
sayHi: function() {
alert("Hi!");
}
};

b. Shorthand Method Syntax (ES6+)

js
let user = {
sayHi() {
alert("Hi!");
}
};

Both work the same way.

5. Adding Methods Dynamically


You can add a method to an existing object:
js
let car = {};
car.drive = function() {
console.log("Driving...");
}
car.drive();

6. Method Parameters and Return Values


Just like regular functions, methods can accept parameters and return values.

js
let calculator = {
add(a, b) {
return a + b;
}
};
console.log(calculator.add(5, 9)); // 14

7. Methods that Use Other Properties


Methods can access (and update) other properties of the same object via this .

js
let counter = {
value: 0,
increment() {
this.value += 1;
}
};
counter.increment();
console.log(counter.value); // 1

8. Methods and the this Trickiness


a. Standalone Invocation
If you call a method outside its object, this loses the object reference:
js
let user = {
name: "Ali",
sayName() {
console.log(this.name);
}
};
let f = user.sayName;
f(); // undefined (or window.name in browsers, if exists)

b. Arrow Functions as Methods: DON’T Use


Arrow functions do not have their own this ; they inherit it from the surrounding context. So, they
are usually not suitable for methods.

js
let user = {
name: "Ali",
sayName: () => {
console.log(this.name);
}
};
user.sayName(); // undefined

9. Advanced: Method Borrowing


You can borrow methods from one object to use on another by using .call , .apply or .bind .

js
let person1 = { name: "Rahul" };
function sayHello() {
console.log("Hi " + this.name);
}
sayHello.call(person1); // "Hi Rahul"

10. Advanced: Method Chaining


If a method returns this , you can chain method calls:
js
let counter = {
count: 0,
inc() {
this.count++;
return this;
},
Answer
dec() {
this.count--;
return this;
},
get() {
console.log(this.count);
return this;
}
};
counter.inc().inc().dec().get(); // 1

11. Encapsulation and Classes (Modern OOP)


Methods are also used inside classes. A class is a blueprint for objects.

js
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(this.name + " makes a sound!");
}
}
let dog = new Animal("Bruno");
dog.speak(); // "Bruno makes a sound!"

— Summary Table
Regular Function ES6 Method Shorthand Class Method

Syntax key: function(){} key() {} Same as ES6

this Refers to object Refers to object Refers to instance


In Short:

Object methods are functions stored as object properties.


They use this to access or modify the object’s other properties.
Use regular functions, not arrow functions, for object methods if you need this .

You can chain methods if they return this .

With ES6, you can write them in a shorthand way.


Methods are used in objects and classes (modern JavaScript OOP).
If you want code samples, diagrams, or further explanations for any point, feel free to ask!

Share Export Rewrite

Explain the array method in same ways likes starting to advance


Answer Sources · 10​
​ ​

Iliakan w3schools freeCodeCamp.org JavaScript Tutorial


Array methods - The JavaScript Array Methods - JavaScript Array Tutorial – JavaScript Array Methods
Modern JavaScript Tutorial W3Schools Array Methods in JS -…

Here’s a detailed, step-by-step breakdown of array methods in JavaScript, progressing from


fundamentals to more advanced usages:

1. What is an Array?
An array is a special variable that can hold multiple values in a single variable—ordered by index,
starting from zero. In JavaScript, arrays are objects and can hold any type of data: numbers,
strings, objects, or even other arrays 3 6 .

js
let fruits = ["Banana", "Orange", "Apple", "Mango"];

Arrays can be created with literal syntax (above) or using the Array() constructor.
2. Array Properties

length: Returns the number of elements in the array.

js
fruits.length; // 4

You can also set this property to change the array’s size 2 7 .

3. Basic Array Methods


Method Description Example

push() Adds element(s) at the end fruits.push("Peach")

pop() Removes and returns the last element fruits.pop()

shift() Removes and returns the first element fruits.shift()

unshift() Adds element(s) at the beginning fruits.unshift("Lemon")

concat() Returns a new array combining existing with other array(s) fruits.concat(["Grape"])
or elements

slice() Returns a shallow copy of part of the array (non-inclusive fruits.slice(1, 3)


end index)

splice() Adds/removes/replaces element(s) in-place fruits.splice(2, 1, "Pear")

toString() Converts array to comma-separated string fruits.toString()

join() Like toString() but allows custom separator fruits.join(" - ")

1 2 3 4 7 8

4. Searching and Finding Elements


Method Description Example

indexOf() Returns first index of an element, or -1 fruits.indexOf("Apple")

lastIndexOf() Returns last index of an element, or -1 fruits.lastIndexOf("Apple")

includes() Checks if an element exists fruits.includes("Mango")

find() Returns first element passing a test function fruits.find(f => f==='A')

findIndex() Returns index of first element passing a test fruits.findIndex(f => f==='A')

filter() Returns new array of all elements passing a test fruits.filter(f => f.length > 5)

1 2 4 7
5. Iteration Methods (Loops & Transformation)
Method Description Example

forEach() Executes a function on every array element (doesn’t fruits.forEach(f =>


return anything) console.log(f))

map() Returns new array, applying a function to fruits.map(f => f.toUpperCase())


every element

reduce() Reduces array to a single value (e.g., sum, product) nums.reduce((sum, n) => sum+n, 0)

reduceRight() Same as reduce(), but right-to-left nums.reduceRight((sum, n) =>


sum+n, 0)

some() Checks if at least one element passes a test nums.some(n => n > 3)

every() Checks if all elements pass a test nums.every(n => n > 0)

5 6 7 8

6. Sorting and Reversing


Method Description Example

sort() Sorts array in place (default: string order, can use compare function) fruits.sort()

reverse() Reverses order of elements in place fruits.reverse()

1 2 7

7. Advanced and Less Common Methods

flat(): Flattens nested arrays by one or more levels.

js
[[1,2],[3,4]].flat(); // [1,2,3,4]

flatMap(): Maps and flattens result one level.


Ask a follow-up…
copyWithin() : Copies part of the array to another location within the array.
fill(): Changes all elements to a fixed value.
from(), isArray(), of(): Static methods to create or check arrays.

You might also like